在我的Grails应用中,我有一个具有上载文件参数的操作。从请求中检索文件,如下所示:
CommonsMultipartFile cu = params['currencyResult']
如果文件很小,它可以正常工作,但是如果我尝试上载1.3MB的文件,则会出现“连接已重置”错误(执行永不执行操作)。
我尝试进行以下更改,以允许上传最大100MB的文件。在
resources.groovy
中,我添加了以下Spring beanmultipartResolver(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的connectionUploadTimeout
和disableUploadTimeout
?
来自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/