WEB 開發錯誤收集(三) org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:

        今天用struts2做了一個文件上傳的實例,通過流操作,控制文件上傳,沒有進行擴展名的限制,本以爲可以實現所有類型文件的上傳了,於是首先上傳了一個PPT文件,可是部署測試後,報錯org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException。大概看了下,是大小限制,於是想到設置限制上傳的最大值。上網查了查解決方法,現在將它整理在這裏,供自己供他人日後借鑑。

原因:

struts2的攔截器可以限制文件的類型、大小等,但是當上傳文件大小2M後,這個攔截器就不起作用了,只用小於2M(默認大小)的時候才起作用。那是因爲:common-fileupload組件默認最大支持上傳文件的大小爲2M,當我們上傳大於2M的文件時,就會出現上面所說的異常。是這個異常的發生導致了fileUpload攔截器沒有機會執行,所以看到的是頁面沒有任何變化,也沒有任何提示信息,只是在控制檯打印出了上面的那些上傳文件過大的異常

解決方法:
這個最大值是在struts2的源文件“struts2-core-2.0.11.1.jar\org\apache\struts\ default.properties”中的struts.multipart.maxSize=2097152語句,如果想改大的話,就重新設定它,有兩種方法:

一種是重寫:struts.properties文件。

二是在struts.xml中加入常量來改變它如“ Java代碼
<constant name="struts.multipart.maxSize" value="10000000" />

 

發佈了25 篇原創文章 · 獲贊 9 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章