grails - 无法不惜一切代价上传文件

标签 grails

我是Grails的新手。我尝试过几次上传文件。但是失败了。我正在使用grails 2.3.11。在我的config.groovy文件中,我已经包含了

grails.web.disable.multipart=true

我没有在BuildConfig中添加任何依赖文件上传。我需要它来解决严重问题。我在下面给出代码

GSP代码:
<g:uploadForm action="upload" enctype="multipart/form-data" useToken="true">
        <fieldset class="form">
            <input type="file" name="file" />
        </fieldset>
        <fieldset class="buttons">
            <g:submitButton name="upload" class="save" value="Upload" />
        </fieldset>
    </g:uploadForm>

我的 Controller 代码:
 def file = request.getFile('file')

我也尝试了这段代码:
MultipartRequest multipartRequest =  request as MultipartRequest
    def file = multipartRequest.getFile('file')
    if (file){
      flash.message = "File found!!"
    } else {
      flash.message = "File NOT found.  :-( "
    }
    redirect action:'list'

但是每次我都遇到相同的错误:
groovy.lang.MissingMethodException: 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()

如何解决这个问题?是否有完整的文件上传示例?

最佳答案

您应该在config.groovy中设置grails.web.disable.multipart = false。这意味着您要启用对服务器的多部分请求。在您的 Controller 内部:

String content = request.getContentType()
if (content.contains("multipart/form-data") || (request instanceof MultipartHttpServletRequest)) {
    MultipartFile uploadedFile = request.getFile('file')
    if (!uploadedFile) {
        flash.message = "No attachment found for upload!"
    }else{
        flash.message = "File uploaded successfully."
    }
} else {
    flash.message = "Unable to upload file, Bad Request!")
}

关于grails - 无法不惜一切代价上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208725/

相关文章:

grails - 访问 Grails UserDetailsS​​ervice 中的参数

grails - Grails Assets 管道自定义主题支持

java - (无法延迟初始化集合,没有 session 或 session 已关闭)grails 1.3.7 中的 quartz-0.4.2 错误

java - Thread.currentThread().contextClassLoader.getResource(path) 似乎缓存结果。可以预防吗?

grails - 检测请求是否是来自另一个 Controller 操作的 "forward()"的正确方法是什么?

grails - grails智能子字符串方法-即使结束索引超出范围也可以使用

java - Groovy - 计算从当前时间开始是否经过了特定分钟

grails - 对返回的 child 限制一对多

grails - 如何将Javascript变量发送到Grails Controller 以查询Neo4J

tomcat - 在 grails tomcat 插件中找不到 server.xml