struts多文件上傳的實現描述附帶代碼

使用jquery點擊添加按鈕添加瀏覽框實現struts多文件上傳。

例如:點擊添加,添加一個瀏覽框。

Jsp頁面代碼:

<%@page language="java" import="java.util.*"pageEncoding="utf-8"%>

<%

Stringpath = request.getContextPath();

StringbasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

       <meta http-equiv="Content-Type"content="text/html; charset=utf-8" />

       <title>Untitled Document</title>

       <scripttype="text/javascript" src="./js/jquery-1.7.1.js">

</script>

       <scripttype="text/javascript">

$(function(){

    var i = 2;

    $("#add").click(function(){

           $("#main").append(

       '<div>上傳文件:<inputtype="file" name="upload"/></div>');

                        

                  });

   

});

</script>

    </head>

    <body>

    <div align="center">

    <formaction="${pageContext.request.contextPath}/csdn/upFiles.action"

              enctype="multipart/form-data"method="post">

       <div id="main">

           <div>

              上傳文件:<input type="file"name="upload" />

           </div>

       </div>

       <input type="button"id="add" name="button" value="添加"/>

       <input type="submit"  value="上傳"/>

       </form>

       </div>

    </body>

</html>

UploadsAction代碼:

packagecn.csdn.hr.up.action;

importjava.io.File;

importjava.io.IOException;

importorg.apache.commons.io.FileUtils;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

publicclass UploadsAction extends ActionSupport {

    // 規定

    private File upload[];// 上傳文件

    // 上傳文件的類型

    private String uploadContentType[];

    // 上傳文件的名稱

    private String uploadFileName[];

    public File[] getUpload() {

       return upload;

    }

    public void setUpload(File[] upload) {

       this.upload = upload;

    }

    public String[] getUploadContentType() {

       return uploadContentType;

    }

    public void setUploadContentType(String[]uploadContentType) {

       this.uploadContentType =uploadContentType;

    }

 

    public String[] getUploadFileName() {

       return uploadFileName;

    }

    public void setUploadFileName(String[]uploadFileName) {

       this.uploadFileName = uploadFileName;

    }

 

    public String uploads() {

       String path =ServletActionContext.getServletContext().getRealPath(

              "/ims");

       File file = new File(path);

       if (!file.exists()) {

           file.mkdirs();

       }

       /**

        * 以流的方式 讀取文件 寫入到指定文件中去mkdirs mkdir區別 FileUtils工具完成上傳

        */

       try {

           for(int i=0;i<upload.length;i++){

           FileUtils.copyFile(upload[i], newFile(file, uploadFileName[i]));

           }

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       System.out.println("上傳文件的名稱:" +getUploadFileName() + "------上傳文件的類型"

              + getUploadContentType());

       return SUCCESS;

    }

 

}

導入所需jar包:

配置web.xml:

<?xmlversion="1.0" encoding="UTF-8"?>

<web-appversion="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 

    <filter>

       <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

 

 

    <welcome-file-list>

       <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

</web-app>

配置struts2.xml;

<?xmlversion="1.0" encoding="UTF-8"?>

 <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTDStruts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <includefile="struts-user.xml"></include>

   <package name="test"  extends="struts-default"namespace="/csdn">

       <action name="upFiles"class="cn.csdn.hr.up.action.UploadListAction"method="uploads">

         <result>../sc.jsp</result>

       </action>

   

    </package>

   

   

</struts>

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章