Grails 文件上传未使用正确的内容类型

Posted

技术标签:

【中文标题】Grails 文件上传未使用正确的内容类型【英文标题】:Grails file upload not using correct content-type 【发布时间】:2015-05-22 21:18:04 【问题描述】:

我在 Grails 中创建了文件上传,但我找不到获取使用 Content-Type:multipart/form-data 的请求的方法。请求正在发送 Content-Type:application/x-www-form-urlencoded.

这是我的表格

        <g:uploadForm controller='asset' action='upload'>
            <label>Select file(s) to upload</label>
            <input type='file' id='fileUpload' name='filesToUpload' multiple />
            <g:submitButton name="upload" value="Upload"/>
        </g:uploadForm>

在 Config.groovy 中,grails.mime.types 包含 multipartForm: 'multipart/form-data'grails.web.disable.multipart=false。我使用的是 Spring Security,AssetsController@Secured

如何使用Content-Type:multipart/form-data 发送请求?

【问题讨论】:

【参考方案1】:

如果&lt;g:uploadForm &gt;-Tag 不符合手册中的描述:

http://grails.github.io/grails-doc/2.5.x/ref/Tags/uploadForm.html

与标准表单标签相同,只是它自动将 enctype 属性设置为“multipart/form-data”。

那么您可以尝试使用普通的&lt;g:form &gt;-Tag 并添加 enctype 属性,甚至根本不使用该标签。一个简单的 HTML 上传也可以:

<form action="$g:createLink controller:'', action:''" method="post" enctype="multipart/form-data">
    <input type="file" name="fileupload">
    <input type="submit" name="upload">
</form>

【讨论】:

以上是关于Grails 文件上传未使用正确的内容类型的主要内容,如果未能解决你的问题,请参考以下文章

Grails 文件下载

上传文件时获取不正确的文件扩展名和内容类型

Grails 文件上传问题

大型文件上传期间的 Grails 连接超时

文件未使用 html 输入类型文件上传

Grails 中的多个文件上传