gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:00:48 24 4
gpt4 key购买 nike

当我打开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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com