那天寫了一個web上傳圖片的程序,明明修改了上傳文件的默認值(2M),可就是一直沒有起作用
<action name="fileupload" class="uploasAction"> <interceptor-ref name="defaultStack"> <param name="fileUpload.allowedTypes"> image/png,image/gif,image/jpeg,image/jpg,image/x-png </param> <param name="fileUpload.maximumSize">102400000</param>
</interceptor-ref>
</action>
原來上網查了一下,還要加入這個東西
在struts.xml中加入 <constant name="struts.multipart.maxSize" value="10000000"/> ,大約10M
才能使攔截器起到作用
struts.multipart.maxSize掌控整個項目所上傳文件的最大的Size
struts.multipart.maxSize和fileUpload攔截器的maximumSize屬性分工不同,總結如下:
1.struts.multipart.maxSize掌控整個項目所上傳文件的最大的Size。超過了這個size,后台報錯,程序處理不了如此大的文件。fielderror里面會有如下的提示:
the request was rejected because its size (16272982) exceeds the configured maximum (9000000)
2.fileUpload攔截器的maximumSize屬性必須小於struts.multipart.maxSize的值。
struts.multipart.maxSize默認2M,當maximumSize大於2M時,必須設置struts.multipart.maxSize的值大於maximumSize。
3.當上傳的文件大於struts.multipart.maxSize時,系統報錯
當上傳的文件在struts.multipart.maxSize和maximumSize之間時,系統提示:
File too large: file "MSF的概念.ppt" "upload__5133e516_129ce85285f__7ffa_00000005.tmp" 6007104
當上傳的文件小於maximumSize,上傳成功。