grails - 允许上传大文件

标签 grails

在我的Grails应用中,我有一个具有上载文件参数的操作。从请求中检索文件,如下所示:

CommonsMultipartFile cu = params['currencyResult']

如果文件很小,它可以正常工作,但是如果我尝试上载1.3MB的文件,则会出现“连接已重置”错误(执行永不执行操作)。

我尝试进行以下更改,以允许上传最大100MB的文件。在resources.groovy中,我添加了以下Spring bean
multipartResolver(CommonsMultipartResolver) {
    maxUploadSize = 1000000 * 100 // 100 MB
}

在Tomcat的server.xml中,我将此maxPostSize属性添加到Connector
<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443"  maxPostSize="100000000"/>

但是,对于1.3MB的文件,上传仍然失败。为了允许上传较大的文件,我还需要配置其他内容吗?

最佳答案

您是否考虑过设置Tomcat的connectionUploadTimeoutdisableUploadTimeout

来自Documentation:

connectionUploadTimeout

Specifies the timeout, in milliseconds, to use while a data upload is in progress. This only takes effect if disableUploadTimeout is set to false.



示例:
<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443"  
           maxPostSize="100000000"
           disableUploadTimeout="false"
           connectionUploadTimeout="300000" />

或在开发中,您可以在Grails中使用以下设置:
eventConfigureTomcat = { tomcat ->
    tomcat.connector.setAttribute('disableUploadTimeout', false);
    tomcat.connector.setAttribute('connectionUploadTimeout', 300000);
}

您将需要根据需要调整超时值。

关于grails - 允许上传大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453996/

相关文章:

grails - 在 grails 3.x 中寻找集成

grails - 如何重定向到关于拒绝 Spring 安全访问的上一页?

grails - Groovy/Grails : How do I make my datePicker blank or null by default instead of showing today's date?

hibernate - Grails GORM查询以匹配多个关联对象

grails - 使用多个belongsTo,但一次只有一个

grails - Grails:如何通过标签组合findAll和findAll

unit-testing - 如何在Spock单元测试Grails中测试catch block 代码

rest - 结合使用JSON和Grails来使用REST API

grails - commons-codec Unresolved 依赖关系

database - 我应该使用哪个插件进行 hibernate4 的数据库迁移?