Grails 上载文件不会引发方法异常的签名(在getFile()方法中)

Grails 上载文件不会引发方法异常的签名(在getFile()方法中),grails,Grails,我试图上传一个文件,并将其存储在一个文件中。这是GSP中的代码: <g:form method="post" enctype="multipart/form-data" action="update"> <input type="file" name="cv" id="cv"/> <g:actionSubmit action="upload" name="upload" value="Upload" /> </g:form> 正如我在标题中所说

我试图上传一个文件,并将其存储在一个文件中。这是GSP中的代码:

<g:form method="post" enctype="multipart/form-data"  action="update">
<input type="file" name="cv" id="cv"/>
<g:actionSubmit action="upload" name="upload" value="Upload" />
</g:form>
正如我在标题中所说,我在这里有一个例外。有什么帮助吗?谢谢

编辑(完整堆栈跟踪,按请求):


问题是您的请求没有被视为多部分请求。这样做:

MultipartRequest multipartRequest =  request as MultipartRequest
  if(multipartRequest){
    MultipartFile attachmentFile = multipartRequest.getFile("attachment_file".toString())
    if (attachmentFile) {
        -- copy it ---
    }
  }

我已经试过了代码,它对我有效,没有发现任何错误。我也没有发现任何错误,但异常仍在发生。也许是Grails版本问题?2.0.4版上的Im可能会尝试“grails clean”,请提供完整的stacktrace以确定此处发生了什么。这可能是配置问题,以下是一些可能有帮助的提示:
Error 500: Internal Server Error

URI
/com.publidirecta.azafatas/azafataCertificada/index
Class
groovy.lang.MissingMethodException
Message
No signature of method:org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper.getFile() is applicable for argument types: (java.lang.String) values: [cv] Possible solutions: getXML(), getPart(java.lang.String), getAt(java.lang.String), getAt(java.lang.String), getLocale(), getJSON()

Around line 1158 of grails-app/controllers/com/publidirecta/AzafataCertificadaController.groovy

1155:           def upload(){
1156:       println("Acción upload. Params: "+params)
1157:       Azafata aza=Azafata.findByUsername(params.user)
1158:       def f = request.getFile('cv')
1159:       InputStream file = f.inputStream
1160:       byte[] bytes = file.bytes
1161:               }


Trace

    Line | Method
->> 1158 | upload  in AzafataCertificadaController.groovy
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
|    908 | run . . in     ''
^    680 | run     in java.lang.Thread
MultipartRequest multipartRequest =  request as MultipartRequest
  if(multipartRequest){
    MultipartFile attachmentFile = multipartRequest.getFile("attachment_file".toString())
    if (attachmentFile) {
        -- copy it ---
    }
  }