1

在我的 grails 项目中,我有一个多部分表单,它抓取文件并将文件名分配给存储在数据库中的变量。

当我使用生产标志从 localhost 运行应用程序时,我能够成功提交表单,但是,在将应用程序部署到 glassfish 服务器后,我收到服务器 500 错误:

Cannot get property 'originalFilename' on null object

我在想这可能与没有正确处理多部分有关。任何人都有这个问题,或者可以指出我正确的方向来解决它吗?

使用使用 Oracle db 部署到 Glassfish 3 服务器的 Grails 2.0.4。

我的操作中的相关代码:

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>
4

1 回答 1

1

如果uploadedFile为空,则为空uploadedFile?.empty,所以

if (!uploadedFile?.empty) { // is there a file? 

会做与你期望相反的事情

你可能应该做

if ( uploadedFile && !uploadedFile.empty) { // is there a file? 
于 2012-06-13T20:04:30.010 回答