在我的grails项目中,我有一个多部分表单,它抓取文件并将文件名分配给存储在数据库中的变量。
当我从带有生产标志的localhost运行应用程序时,我能够成功提交表单,但是,在将应用程序部署到glassfish服务器后,我收到服务器500错误:
Cannot get property 'originalFilename' on null object
我在想,也许它与正确处理多部分有关。任何人都有这个问题,或者可以指出我正确的方向来解决它?
使用Grails 2.0.4使用Oracle db部署到Glassfish 3服务器。
来自我的行动的相关代码:
def uploadedFile = request.getFile('filepath')// see if there is a file to upload
if (!uploadedFile?.empty) { // is there a file?
sampleInstance.filepath = "file://///FileLocation/${uploadedFile?.originalFilename}" // save the original filename
}
gsp上的表格:
<g:form action="sample" enctype="multipart/form-data">
<g:textField name="name" value="${sampleInstance?.name}"/>
...
<input type="file" id="filepath" name="filepath" />
<g:submitButton name="submit" value="Submit" /></td>
</g:form>
答案 0 :(得分:1)
如果uploadedFile
为空,则uploadedFile?.empty
将为空,因此
if (!uploadedFile?.empty) { // is there a file?
将与您期望的相反
你可能应该这样做
if ( uploadedFile && !uploadedFile.empty) { // is there a file?