struts上传文件设置了大小限制,正常文件上传没问题,但是上传个超大文件后,再次上传正常文件,也无法上传了。
而且这个Action的所有接口都无法访问。
具体代码如下。
struts配置
<constant name="struts.multipart.maxSize" value="20971520" />
<action name="testUpload" class="testUploadAction" >
<interceptor-ref name="fileUpload">
<param name="maximumSize">1048576</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
Action
public void uploadPackage() {
...
}
@Override
public void addActionError(String anErrorMessage) {
// TODO(1)
super.addActionError(anErrorMessage);
}
js
$.ajaxFileUpload({
type : "post",
url : root + "/testUpload!uploadPackage.action",
fileElementId: ["packageFile"],
dataType: 'json',
success : function(result) {
...
},
error : function() {
// TODO(2)
...
},
});
调试时,后台在TODO(1)的位置打了断点,前台在TODO(2)的位置打了断点。
struts设置的maxSize是20M,过滤器里限制的是1M。
1.当上传1M以下的文件时,没问题。反复上传也没问题。
2.如果,上传1M以上20M以下的文件时,断点没进入,后台报错
No result defined for action testUploadAction and result input
再次上传正确的文件,依然报错
No result defined for action testUploadAction and result input
而且这个Action中的所有接口都无法被访问了
3.上传20M以上的文件时,前台只请求了一次,
TODO(1)的断点却进入2次,同样TODO(2)的断点也进入2次。
再次上传正常文件,后台报错
No result defined for action testUploadAction and result input
而且这个Action中的所有接口都无法被访问了
求大神指点,是哪里设置出现了问题,还是哪里写错了。
为什么只请求一次,后台TODO(1)会走进去2次?
再次Action里的接口怎么全都无法访问了?