1. 程式人生 > >J2EE開發:struts2 檔案上傳(單個檔案與多個檔案)

J2EE開發:struts2 檔案上傳(單個檔案與多個檔案)

<一>簡述:

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

  1. <%@ page language="java"import="java.util.*"pageEncoding="UTF-8"%>
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8.   <head>
  9.     <basehref="<%=basePath%>">
  10.     <title>My JSP 'fileupload.jsp' starting page</title>
  11.     <metahttp-equiv="pragma"content="no-cache">
  12.     <metahttp-equiv="cache-control"content="no-cache">
  13.     <metahttp-equiv="expires"content="0">
  14.     <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
  15.     <metahttp-equiv="description"content="This is my page">
  16.     <!-- 
  17.     <link rel="stylesheet" type="text/css" href="styles.css"> 
  18.     -->
  19.   </head>
  20.   <body>
  21.      <!-- enctype 預設是 application/x-www-form-urlencoded -->
  22.      <formaction="FileUpload2"enctype="multipart/form-data"method="post">
  23.                使用者名稱:<inputtype="text"name="usename"><br/>
  24.                上傳檔案:<inputtype="file"name="file1"><br/>
  25.               <inputtype="submit"value="提交"/>
  26.      </form>
  27.   </body>
  28. </html>

2.具體處理上傳的 FileUpload.java
  1. package com.struts2.fileupload;  
  2. import java.io.File;  
  3. import java.io.FileInputStream;  
  4. import java.io.FileOutputStream;  
  5. import java.io.InputStream;  
  6. import java.io.OutputStream;  
  7. import org.apache.struts2.ServletActionContext;  
  8. import com.opensymphony.xwork2.ActionSupport;  
  9. /** 
  10.  * 單個檔案上傳 
  11.  * @author Administrator 
  12.  * 上傳檔案其實是上傳了兩份, 
  13.  *  
  14.  * 首先將上傳的檔案儲存到 default.properties 檔案中 struts.multipart.saveDir鍵指定的目錄中 
  15.  * 預設是空的 
  16.  * 儲存在  Tomcat 6.0\work\Catalina\localhost\struts2目錄下以.tmp字尾名的檔案 
  17.  *  
  18.  * 如果要在 struts.multipart.saveDir 指定目錄, 則可以在 src資料夾下 建一個 struts.properties, 
  19.  * 覆蓋  default.properties 的某些鍵值 
  20.  *  
  21.  * 還有一份是 存放在自己設定的目錄下 
  22.  */
  23. publicclass FileUpload extends ActionSupport {  
  24.     private String usename ;  
  25.     private File file1 ; //具體上傳檔案的 引用 , 指向臨時目錄中的臨時檔案
  26.     private String file1FileName ;  // 上傳檔案的名字 ,FileName 固定的寫法
  27.     private String file1ContentType ; //上傳檔案的型別, ContentType 固定的寫法
  28.     public String getUsename() {  
  29.         return usename;  
  30.     }  
  31.     publicvoid setUsename(String usename) {  
  32.         this.usename = usename;  
  33.     }  
  34.     public File getFile1() {  
  35.         return file1;  
  36.     }  
  37.     publicvoid setFile1(File file1) {  
  38.         this.file1 = file1;  
  39.     }  
  40.     public String getFile1FileName() {  
  41.         return file1FileName;  
  42.     }  
  43.     publicvoid setFile1FileName(String file1FileName) {  
  44.         this.file1FileName = file1FileName;  
  45.     }  
  46.     public String getFile1ContentType() {  
  47.         return file1ContentType;  
  48.     }  
  49.     publicvoid setFile1ContentType(String file1ContentType) {  
  50.         this.file1ContentType = file1ContentType;  
  51.     }  
  52.     @Override
  53. 相關推薦

    J2EE開發struts2 檔案單個檔案檔案

    <一>簡述: Struts2的檔案上傳其實也是通過攔截器來實現的,只是該攔截器定義為預設攔截器了,所以不用自己去手工配置,<interceptor name="fileU

    AJAX+Servlet3.0實現非同步檔案單個檔案檔案、帶檔案的表單提交

       一、上傳單個檔案           1.JSP頁面程式碼       <%@ page language="java" contentType="text/html;

    圖片檔案上面一篇是預覽

    圖片上傳和預覽是一起的,分別寫了兩個元件(上傳、預覽),在上傳中呼叫預覽,因放一起有點多故分開寫了 寫上傳元件attach <template> <div> <div class="pic-list" v-if="temp.fileList.length>

    獨立使用UEditor編輯器圖片和檔案呼叫內建第三方外掛swfupload

     最近百度了一下網上的資料並看了一下ueditor的api,整理並測試了一下,發現還真好用,現在和大家分享一下 這裡配置了一個正常的ueditor編輯器和編輯器外面的兩個上傳按鈕。 首先引入js檔案 1 <script src="ueditor/ueditor.

    基於springMVC的檔案親自實踐,完美的執行

    由於是一個新手菜鳥,所以說對很多東西都不是很瞭解,最近剛好在做一個專案需要做檔案的上傳和下載,以前直接是用寫好的,這個自己動手寫了一下用了半天時間跟大家分享一下。 一.環境是SSM+Maven       首先,你需要搭建好springMC的環境,如果不會搭建的話

    java-web檔案下載,可解決安全訪問問題

    檔案上傳下載,可解決多個安全訪問問題。這個是上年老師教給我們的一個方法,這裡當做筆記記錄一下。說明:對於檔案上傳,瀏覽器在上傳的過程中是將檔案以流的形式提交到伺服器端的,如果直接使用Servlet獲取上傳檔案的輸入流然後再解析裡面的請求引數是比較麻煩,所以一般選擇採用apac

    如何在struts2框架下實現檔案重要步驟

    檔案上傳前臺頁面的三大要素1)form表單的提交方式必須是post提交2)form表單的提交型別必須是enctype.必須多段式.enctype="multipart/form-data"3)檔案上傳使用 <input type="file" name="photo"

    struts2基於模型驅動的檔案視訊為例子

    package cn.hbmy.tas.entity; import java.io.File; public class Video { private Integer id; //id private File video; private String

    struts2.x檔案使用註解

    一般網站都會提供檔案的上傳與下載的功能,尤其是資料管理型網站。剛好在工作中需要用到,就提前學習了一下,並建了一個maven工程做練習。 1.      本工程使用maven建立工程,是為了省去包匯入細節,其中maven工程的pom.xml檔案主要如下: <!--

    struts2框架之文件參考第三天學習筆記

    input 允許 jakarta ges too 文件的 ESS dir 參數 上傳 1. 上傳對表單的要求 * method=post * enctype=multipart/form-data 2. 上傳對servlet要求 * getParameter()不能再使用!

    【Android架構】基於MVP模式的Retrofit2+RXjava封裝之檔案

    最近手頭事比較多,抽個空把之前系列也補充一下。 先回顧下之前的 【Android架構】基於MVP模式的Retrofit2+RXjava封裝(一) 【Android架構】基於MVP模式的Retrofit2+RXjava封裝之檔案下載(二) 今天要說的是檔案上傳 1.單圖上

    Java-Spring框架實現簡單的檔案圖片為例

    一、開發環境搭建 下載相應的jar包: 1.commons-fileupload    2.commons-io web.xml 檔案配置: <servlet>       &

    Springmvc後臺校驗加檔案完整版

    後臺校驗 <!--資料驗證--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId>

    servlet3.0新特性測試,檔案1

    servlet程式碼 @MultipartConfig() @WebServlet(name = "test", urlPatterns = "*.do", initParams = { @WebInitPa

    Servlet檔案壓縮檔案、圖片等

    上傳檔案是指把客戶端的檔案傳送到伺服器端,當客戶端向伺服器上傳檔案時,客戶端傳送的HTTP請求正文采用“multipart/form-data”資料型別,它表示複雜的包含多個子部分的複合表單。比如,如下HTML程式碼中,就包含了普通的文字輸入框和兩個用於指定上傳檔案的檔案域。

    SpringMVC國際化檔案

    其實SpringMVC中的頁面國際化與上一章的驗證國際化基本一致。 1.對頁面進行國際化 1)首先我們對Spring配置檔案中新增國際化bean配置 <!-- 註冊國際化資訊,必須有id,指定資原始檔名稱,資原始檔在src目錄下 --> <bean id="messa

    JSP檔案精簡乾貨

    1.前端程式碼 <form action="AddVedio" method="post" enctype="multipart/form-data"> <table> <tr> <

    檔案工具類

    一、 import java.io.File; import java.io.IOException; import javax.servlet.http.HttpServletRequest; i

    SpringMVC之檔案進度條顯示

    親測可用 1、mvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"   

    Springmvc檔案servlet3.0/下載ssm以及坑點

    以前在servlet上寫過檔案上傳和檔案下載,最近由於需求需要集合到ssm中,有些坑點以前都忘記了。 檔案上傳:檔案上傳首先要在xml中配置上傳資訊,ssm有強大的過濾功能,你不宣告讓某種型別進來他是進不來的,我是用的是servlet3.0的part上傳檔案,