2012-01-16 3 views
0

У меня есть класс домена с свойством, представляющим файлы, загруженные на моем GSP. Я определил этот файл как массив байтов (файл byte []). Когда происходит какое-то конкретное действие, я отправляю почту с вложениями. Это часть моего сервиса отправки:Отправка javaMail-прикрепления любого типа из базы данных

int i = 1; 
     [requestInstance.picture1, requestInstance.picture2, requestInstance.picture3].each(){ 
      if(it.length != 0){ 
       DataSource image = new ByteArrayDataSource(it, "image/jpeg"); 
       helper.addAttachment("image" + i + ".jpg", image); 
       i++; 
      } 
     } 

Это прекрасно работает с файлами изображений. Но теперь я хочу иметь возможность работать со всеми типами файлов, и мне интересно, как это реализовать. Кроме того, я хочу сохранить реальное имя файла в базе данных. Вся помощь приветствуется.

+0

Вы знаете названия файлов других файлов? или просто двоичные данные? –

+0

@splix Все это двоичные данные, которые определены в классе домена. Но это не имеет значения. Его можно изменить - класс домена, GSP и логику контроллера. Я просто хочу сделать это наилучшим образом. – drago

+0

В этом случае я не могу понять вашу проблему. Вы просто привязываете двоичные данные с именем файла/mimetype (такие же вещи). Я имею в виду, этот код работает для любых двоичных данных, не так ли? –

ответ

2

Вы можете увидеть, где в вашем коде указано имя файла и тип MIME. Необходимо сохранить и восстановить эту информацию из вашей базы данных вместе с данными вложения.

Если вы пытаетесь выяснить из массива байтов данных, что такое тип MIME и какое хорошее имя файла, это сложнее. Попробуйте this.

+0

Итак, я думаю, что правильный способ сделать это - иметь дополнительное поле в таблице, где я буду хранить миметики? Но это все еще немного ограничено. Я действительно хочу, чтобы вы могли отправлять файлы любого типа с правильным расширением. Мне нужно сохранить эти файлы в базе данных, потому что они связаны с моими экземплярами класса домена, и мне нужно знать, к какому экземпляру они подключены. – drago

+0

Вы можете получить mimetype из расширения имени файла. Не знаете ли вы имя файла? –

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