1. 程式人生 > >Struts2檔案上傳 —— 限制檔案的大小及型別

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

name="fileUpload">

<!-- 設定單個上傳檔案的大小,單位位元組 -->

<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>