ArrayIndexOutOfBoundsException grails

时间:2014-12-17 23:53:32

标签: database grails groovy

我有这个简单的控制器,可以将文件上传到数据库中。我有一个工作视图,显示上传表单,但是当我点击上传按钮时,我在documentInstance.save()行遇到此错误:处理请求时出现 ArrayIndexOutOfBoundsException:[POST] / myApp / documentFile /上传

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 个答案:

答案 0 :(得分:0)

尝试设置&#39;尺寸&#39;或者&#39; maxSize&#39;对您的域名对象的约束&#39; filedata&#39;字段根据您上传的文件大小。您的数据库可能正在创建无法保存要上载的文件大小的小列。根据{{​​3}}