在我的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的文件。是否还需要配置其他内容才能上传更大的文件?
答案 0 :(得分:0)
您是否考虑过设置Tomcat&{39} connectionUploadTimeout
和disableUploadTimeout
?
<强> connectionUploadTimeout 强>
指定数据上载时使用的超时(以毫秒为单位) 进行中。这仅在disableUploadTimeout设置为时生效 假的。
示例:强>
<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);
}
您需要根据需要调整超时值。
答案 1 :(得分:0)
您是通过WS还是POST执行此操作? 如果用WS调整
<scripting>
<webServices>
<jsonSerialization maxJsonLength="500000000"/>
</webServices>
</scripting>