2014-12-17 4 views
1

У меня есть этот простой контроллер, который загружает файл в базу данных. У меня есть рабочий вид, который отображает форму для загрузки, но при нажатии на кнопку загрузки, я бегу в эту ошибку в documentInstance.save() линии: ArrayIndexOutOfBoundsException произошел при обработке запроса: [POST]/MYAPP/documentFile/загрузитьArrayIndexOutOfBoundsException grails

class DocumentController { 
    def upload() { 
     def file = request.getFile('file') 
     if(file.empty) { 
      flash.message = "File cannot be empty" 
     } else { 
      def documentInstance = new Document() 
      documentInstance.filename = file.originalFilename 
      documentInstance.filedata = file.getBytes() 
      documentInstance.save() 
     } 
     redirect (action:'list') 
    } 
} 

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

ОБНОВЛЕНИЕ:

элемент формы часть GSP, как показано ниже.

  <g:uploadForm action="upload"> 
       <fieldset class="form"> 
        <input type="file" name="file" /> 
       </fieldset> 
       <fieldset class="buttons"> 
        <g:submitButton name="upload" class="save" value="Upload" /> 
       </fieldset> 
      </g:uploadForm> 

Вот класс Доменных Document

class Document{ 

    String filename 
    byte[] fileData 

    static constraints = { 
     filename(blank:false,nullable:false) 
     filedata(blank: true, nullable:true, maxSize:1073741824) 
    } 
} 
+1

Пожалуйста, разместите соответствующую деталь (элемент формы) GSP. – sebnukem

+0

Я обновил вопрос с соответствующим кодом GSP. – NanoNi

+1

также полная таблица stacktrace помогла бы – cfrick

ответ

0

параметр Try «размер» или «ограничение MaxSize» на поле ваших доменных объектов FILEDATA 'в зависимости от размера файлов, которые вы загружаете. Ваша база данных может создавать небольшие столбцы, которые не могут содержать размер файла, который вы загружаете. Согласно http://grails.org/doc/latest/guide/theWebLayer.html#uploadingFiles