struts多文件上传的实现描述附带代码

来源:互联网 发布:软件安全性测试过程 编辑:程序博客网 时间:2024/05/17 08:26

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

 

 

原创粉丝点击