2011-12-27 4 views
0

В таблице базы данных У меня есть 3 байтовых массива, которые содержат sqlType longblob (jpg, png, gif). Как реализовать логику отправки этих файлов с помощью javaMail в качестве прикреплений? Меня интересуют только вложения с этими файлами, а не остальная логика почты. Я понимаю, как отправлять вложения из файлов, но как это сделать из базы данных?Отправка привязки javaMail из записей базы данных

... 
byte [] picture1 
byte [] picture2 
byte [] picture3 
... 
static mapping = { 
    picture1 column:"picture1", sqlType: "longblob" 
    picture2 column:"picture2", sqlType: "longblob" 
    picture3 column:"picture3", sqlType: "longblob" 
} 
... 

EDIT: Я попытался передать файл изображения методу sendMail. В частности, я передал его ByteArrayDataSource. Когда есть способ сделать эту работу более чем одним форматом или мне нужно сделать «взлом»? Думаю, я мог бы сделать дополнительное поле в базе данных, где я бы сохранил расширение файла, и когда я хочу получить изображение из базы данных для отправки его в приложении, я передам его методу sendMail, соответствующему расширению. И в методе sendMail у меня будет оператор switch, который определит contentType для ByteArrayDataSource. Но мне интересно, есть ли более элегантный способ. Это мой код:

 MimeBodyPart messagePart = new MimeBodyPart(); 
     messagePart.setText(msgText); 
     MimeBodyPart attachmentPart = new MimeBodyPart(); 
     ByteArrayDataSource attPic1 = new ByteArrayDataSource(p1, "image/jpeg");   


     attachmentPart.setDataHandler(new DataHandler(attPic1)); 
     attachmentPart.setFileName(attPic1.getName()); 

     Multipart multipart = new MimeMultipart(); 

     multipart.addBodyPart(messagePart); 

     multipart.addBodyPart(attachmentPart); 

...

ответ

2

Вы должны прочитать данные байт массива (изображение) из базы данных, а затем использовать http://javamail.kenai.com/nonav/javadocs/javax/mail/util/ByteArrayDataSource.html создать источник данных для прикрепленного с помощью массива байт и настройки типа пантомимы ,

+0

Я отредактировал свой вопрос, вы можете взглянуть? Спасибо. – drago

Смежные вопросы