如何处理CommonsMultipartFile

时间:2011-12-29 20:33:47

标签: grails grails-controller

我正在尝试为grails实现上传代码。在我的控制器上处理文件时,我收到此错误:

ERROR errors.GrailsExceptionResolver  - Exception occurred when processing request: [POST] /com.jason.score/fileResource/uploads
Stacktrace follows:
groovy.lang.MissingMethodException: No signature of method: static org.hsqldb.types.Binary.storeMyFileMethod() is applicable for argument types: (org.springframework.web.multipart.commons.CommonsMultipartFile) values: [org.springframework.web.multipart.commons.CommonsMultipartFile@1a17db8]
    at com.jason.score.FileResourceController$_closure4_closure6.doCall(FileResourceController.groovy:73)
    at com.jason.score.FileResourceController$_closure4.doCall(FileResourceController.groovy:72)
    at com.jason.score.FileResourceController$_closure4.doCall(FileResourceController.groovy)
    at java.lang.Thread.run(Thread.java:662)

我的控制器功能如下所示:

  def uploads = {
    Collection result = []
    Binary binary
    request.getFileNames().each {
        binary = Binary.storeMyFileMethod(request.getFile(it))
        result << [name: binary.getFileName(), size: binary.getFileSize()]
    }
    render result as JSON
}

我的观点如下:

  <g:form name="fileupload" url="[action:'uploads',controller:'fileResource']" method="POST" enctype="multipart/form-data">
           ....
            <input type="file" name="files[]" multiple>

  </g:form>

任何人都可以解释出现了什么问题以及如何处理上传的每个文件(可以是多个文件)吗?

1 个答案:

答案 0 :(得分:1)

@jason你安装了grails jquery插件吗?如果是,您在运行应用程序之前或运行应用程序之后是这样做的吗?确保在类路径中使用jquery插件并组织导入。通过错误消息,它看起来像jquery jar不在类路径中,并且您的应用程序正在尝试使用org.hsqldb.types.Binary,您不应该将其用于文件上传。