struts2上傳文件大小限制
Ⅰ struts2在上傳時控制文件大小時錯誤
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:(2164310)exceedstheconfiguredmaximum(2097152)
日誌顯示上傳文件大於配置文件許可的大小,所有拋出了異常。
Struts2框架底層默認用的是apache的commons-fileupload組件對上傳文件進行處理。
struts.multipart.maxSize設置的大小就是該處理時取用的值,在上傳文件之前系統會去比較文件的大小是否超過了該值,如果超過將拋出上述異常,並且commons-fileupload組件是不支持國際化的,所以我們看到的異常都是默認的。
你可以查看上傳組件的源碼,他的異常是Action級別的。
所以如果你還想用這種方法進行異常處理的話,可以這么做:
在action中直接重寫ActionSupport的addActionError()方法
判斷字元串是不是這樣的字元串。
示例代碼:
java">@Override
public void addActionError(String anErrorMessage) {
//判斷是否是文件上傳超過限制大小異常
if (anErrorMessage.startsWith("the request was rejected because its size")) {
super.addActionError("你上傳的文件大小超過允許的大小!");
} else {
//如果不是文件上傳大小異常則按原來的方法處理
super.addActionError(anErrorMessage);
}
}
頁面加上個<s:fielderror/>
ok了。
需要注意的是,原來頁面上的其他輸入信息都會消失不見。
因為此異常是在上傳前捕獲的。
Ⅱ 求助: struts 2 如何上傳大文件1G左右的
你在頁面上使用一個上傳組件吧,swfupload,這樣傳好一些,還不要忘記在struts.xml配置文檔中加上一條配置:
<constant name="struts.multipart.maxSize" value="1209715200"></constant>這樣就可以傳1.2G左右大小的文件了,可以自己改
Ⅲ struts 2 文件上傳,出現the request was rejected because its size 。。。。
我是用頁面提示出錯的。
不知道你用沒用Spring。。。我是用Spring監聽的
在servlet配置文件里添加
<!-- error -->
<bean class="org.springframework.web.servlet.handler.">
<property name="exceptionMappings">
<props>
<prop key="org.springframework.web.multipart.">/common/fileUploadError</prop>
</props>
</property>
</bean>
然後在相應的路徑下建立一個fileUploadError.jsp文件,提示文件過大之類的....
雖然沒有嘗試過,不過如果你想以alert形式表示,那麼就用ajax發送請求,在callback函數判斷返回頁面的信息,然後alert也應該可以實現...