Struts2檔案上傳 —— 限制檔案的大小及型別
在檔案上傳的時候,有可能需要對檔案的大小和型別做出限制。
Struts 2支援直接在fileUpload 攔截器上設定引數來進行限制。
在引用fileUpload 攔截器的時候,可以指定3 個引數(指定<param>子元素) :
allowedTypes |
指定允許上傳的檔案的型別, 如果存在多種型別,以逗號隔開。注意:這裡添的不是檔案的副檔名, 而是對應的ContentType。 |
maximumSize |
指定允許上傳的檔案的最大位元組數。 |
allowedExtensions |
指定允許上傳的檔案的副檔名。 |
如果上傳的檔案不滿足以上的引數指定的條件,則會跳轉到一個叫input的<result>上, 一般input 都會指回到提交之前的頁面,也就是檔案上傳頁面。
<packagename="default"namespace="/"extends="struts-default"> <actionname="upload"class="cn.itcast.user.action.FileUploadAction" method="upload"> <!-- 向FileUploadAction中傳入上傳檔案的存放目錄的引數值 --> <paramname="uploadPath">D:\</param> <!-- 引用fileUpload攔截器 --> <interceptor-ref <!-- 設定單個上傳檔案的大小,單位位元組 --> <paramname="maximumSize">20000000</param> <!-- 設定單個上傳檔案的副檔名為jpg,多個副檔名之間通過","號分隔 --> <paramname="allowedExtensions">.jpg</param> <!-- 設定單個上傳檔案的MIME型別,多個型別之間通過","號分隔 --> <paramname="allowedTypes">image/jpeg</param </interceptor-ref> <!-- 當顯示宣告使用某一具體攔截器時,那麼預設攔截器棧中的18個攔截器就不起作用了 如果又要預設攔截器棧中的攔截器有作用的話,又需顯示宣告使用預設攔截器棧 --> <interceptor-refname="defaultStack"/> <resultname="input">/jsp/upload.jsp</result> <result>/jsp/success/upload_success.jsp</result> </action> </package> |