Это код сервера. С помощью этого кода вы можете загрузить любой файл, который хранится в базе данных, и сохранить этот файл на стороне сервера в папке (img). Используя ссылку, вы можете получить доступ к файлу.

аюсь спасти.doc, .pdf, .txtи файлы изображений в мою базу данных, используя hibernate, jsf и mysql.

Я создал столбец для сохранения файла типа BLOB. Если я экономлю.txt введите, то файлы будут сохранены правильно.

Если я пытаюсь сохранить файл в любом другом формате, я получаю исключение. В моем бине я создал имя поля:byte[] file;

Как я могу сохранить его правильно без каких-либо исключений? Мне нужно изменить тип данных для столбца MySQL или использовать другое поле для класса Java?

(в ответ на BalusC)

Это код, который я использую для записи файлов. Я используюfileInputStream а затем сохранить файл с помощью Hibernate Framework.

Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();

if (item.isFormField()) {
   String name = item.getFieldName();
   String value = item.getString();
} else {
   String fieldName = item.getFieldName();
   String fileName = item.getName();
   String contentType = item.getContentType();
   boolean isInMemory = item.isInMemory();
   long sizeInBytes = item.getSize();
   byte[] fileInBytes=item.get();


   try {
      File uploadedFile = new File("/home/db/webApp", fileName);
      uploadedFile.createNewFile();
      FileInputStream fileInputStream = new FileInputStream(uploadedFile);
      //convert file into array of bytes
      fileInputStream.read(fileInBytes);
      fileInputStream.close();
  } catch (Exception e) {
      e.printStackTrace();
  }

   UploadedFile object= new UploadedFile(); 
   object.setFile(fileInBytes);
   uploadedObject.setFileName(fileName);
   session.save(object);

UploadedFile Это JSF управляемый бин:

public class UploadedFile{
   private String fileName;
   private byte[] file;
   /**
    * @return the fileName
    */
   public String getFileName() {
      return fileName;
   }
   /**
    * @param fileName the fileName to set
    */
   public void setFileName(String fileName) {   
      this.fileName = fileName;
   }
   /**
    * @return the file
    */
  public byte[] getFile() {
     return file;
  }
  /**
   * @param file the file to set
   */
  public void setFile(byte[] file) {
      this.file = file;
   }
}

и моя таблица базы данных имеет следующую структуру:

Create UploadFile(FILE_NAME` VARCHAR(1000) NOT NULL,
 `FILE` BLOB NOT NULL);

Ответы на вопрос(4)

Ваш ответ на вопрос