<一>簡述:
Struts2的文件上傳其實也是通過攔截器來實現的,只是該攔截器定義為默認攔截器了,所以不用自己去手工配置,<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>
<二>指定用戶上傳文件的大小,有兩種方式:
1)默認是在default.properties 文件的 struts.multipart.maxSize=2097152 鍵值指定為2097152 也就是2M,通過計算 2097152/(1024*1024) = 2 M
那我們可以改變其默認值,只要在src目錄下,新建一個 struts.properties 文件,指定上傳大小 如下:
一次上傳只可以上傳10M,不管一次上傳多少個文件,按總和計算
2)在struts.xml文件中指定,如圖:
其實name就對應struts.properties的鍵,value對應 值
注意:如果即在struts.properties設定文件上傳大小,又在struts.xml 設定文件上傳大小,則struts.properties的優先級高於struts.xml,一般在一處指定上傳大小即可,推薦 struts.properties
<三>Struts2之單文件上傳
1.fileupload.jsp
2.具體處理上傳的 FileUpload.java
3.最終顯示結果的頁面,filedemo.jsp
<四>Struts2之多文件上傳
1.fileupload.jsp
兩個上傳文件的name屬性值要是一樣的,后台方便處理
2.具體處理上傳文件的FileUpload2.java
多文件上傳用集合的方式
3.用於顯示的界面filedemo.jsp
遍歷集合的方式,用struts2提供的標簽 iterator 可以實現
<s:iterator value="file1FileName" id="f"> <!-- id是一個對象,目前是一個字符串集合 可任意命名-->
文件:<s:property value="#f"/> <br/>
<!-- 這里也可以調用方法 <s:property value="#f.toUpperCase()"/> -->
toUpperCase()字符串的方法是把字母轉為大寫
</s:iterator>
下載鏈接:
1)Servlet 文件上傳 ———— 點擊打開鏈接
2)Struts2之下載 點擊打開鏈接