我有这个简单的控制器,可以将文件上传到数据库中。我有一个工作视图,显示上传表单,但是当我点击上传按钮时,我在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)
}
}
答案 0 :(得分:0)
尝试设置&#39;尺寸&#39;或者&#39; maxSize&#39;对您的域名对象的约束&#39; filedata&#39;字段根据您上传的文件大小。您的数据库可能正在创建无法保存要上载的文件大小的小列。根据{{3}}