html - Grails没有方法签名:org.apache.catalina.core.ApplicationHttpRequest.getFile()

标签 html grails groovy uploading

当我打开Grails应用程序的上传页面时,我不断收到此错误消息:

No signature of method: org.apache.catalina.core.ApplicationHttpRequest.getFile()
  is applicable for argument types: (java.lang.String) values: [file]
  Possible solutions: getXML(), getPart(java.lang.String), getAt(java.lang.String),
  getAt(java.lang.String), getLocale(), getInfo()

这是我的html代码:
<html>
<head>
    <meta name="layout" content="main"/>
    <title></title>
    <style type="text/css">
        label{
            float:left;
            width:65px;
        }
    </style>
</head>
<body>
    <g:uploadForm action="upload">
        <input type="file" name="file">
        <g:submitButton name="upload" value="Upload"/>
    </g:uploadForm>
</body>
</html>

和对应的 Controller 类
package org.example.test
class AdminAccessController {
    def upload() {      
        def f = request.getFile('file')
        def allLines= f.inputStream.toCsvReader().readAll() 
    }
}

我尝试导入大量的各种库来解决此问题,但是我还没有弄清楚发生了什么。如您所知,我最终将把这个文件写到csv阅读器中。我在Grails的官方GitHub上完全遵循了该文档:http://grails.github.io/grails-doc/latest/guide/theWebLayer.html#uploadingFiles,但似乎没有任何效果。

谁能帮我吗?

谢谢。

最佳答案

到达您的 Controller 的request实例是没有ApplicationHttpRequest方法的getFile

您需要将请求的类型更改为DefaultMultipartHttpServletRequest

可以通过将enctype中的uploadForm更改为multipart/form-data来完成,如下所示:

<g:uploadForm action="upload" enctype='multipart/form-data'>
    <input type="file" name="file">
    <g:submitButton name="upload" value="Upload"/>
</g:uploadForm>

关于html - Grails没有方法签名:org.apache.catalina.core.ApplicationHttpRequest.getFile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279262/

相关文章:

java - 如何从重复的映射值生成唯一键

javascript - PHPStorm 中的当前 Javascript 版本不支持速记属性名称

html - 如何在高度未知的情况下垂直和水平设置div?

grails - GORM 钩子(Hook)方法在 Grails 集成测试中工作吗

spring-mvc - Grails 3和Spring @RequestMapping

jenkins - 在 Jenkins 管道中发送松弛消息时 cps 不匹配

html - 如何使用 laravel ajax 将另一个文件中的模态显示到我的 html 中

html - 中心 float 列表

grails - 使用XmlSlurper/GPathResult进行重大更改Grails 2.2.0-> Grails 2.3.5并选择具有未知 namespace 的attirbutes

grails - 如何提高grails中保存批量数据的性能?