struts2文件上传

文件的上传和下载分为单个文件上传和多个文件上传

一  单个的文件上传

.1.首先写一个jsp页面:

         <body>

   <div align="center">

        <h1>单个文件上传和多个文件上传</h1>

        <form action="${pageContext.request.contextPath}/csdn/upFile.action" enctype="multipart/form-data" method="post">

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

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

        </form>

   </div>

  </body>

 

2.访问到的struts.xml文件

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

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

<struts>

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

       <action name="upFile" class="cn.csdn.hr.up.action.UploadAction" method="upload">

           <result>../success.jsp</result>

       </action>

    </package>

</struts>

3.访问到UploadAction.java的action  

package cn.csdn.hr.up.action;

 

import java.io.File;

import java.io.IOException;

 

import org.apache.commons.io.FileUtils;

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class UploadAction extends ActionSupport {

    private static final long serialVersionUID = 1L;

 

    /**

     都是规定,File的对象和input中的name(xxx)相同,文件类型和文件名都是xxxContextType,xxxFileName

     */

 

    // 得到上传文件的名称一定与name值一直

    private File upload;

    // 上传文件的类型 ContentType

    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 static long getSerialversionuid() {

       return serialVersionUID;

    }

 

    public String upload() {

       String path = ServletActionContext.getServletContext().getRealPath(

              "/upload");

       // 写到指定路径

       File file = new File(path);

       //判断指定的路径下是否有uplaod,如果没有,自动创建

       if (!file.exists()) {

           file.mkdirs();

       }

       try {

           FileUtils.copyFile(upload, new File(file, uploadFileName));

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       return SUCCESS;

    }

}

二  多个文件的上传

多个文件的上传不同的是在action中的获取到的是数组或者是list集合

 

数组的action为:

package cn.csdn.hr.up.action;

 

import java.io.File;

import java.io.IOException;

 

import org.apache.commons.io.FileUtils;

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class UploadsAction extends ActionSupport {

    private static final long serialVersionUID = 1L;

 

    // 得到上传文件的名称一定与name值一直

    private File upload[];

    // 上传文件的类型 ContentType

    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 static long getSerialversionuid() {

       return serialVersionUID;

    }

 

    public String uploads() {

       String path = ServletActionContext.getServletContext().getRealPath(

              "/upload");

 

       // 写到指定路径

       File file = new File(path);

       //判断指定的路径下是否有uplaod,如果没有,自动创建

       if (!file.exists()) {

           file.mkdirs();

       }

       try {

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

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

           }

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       System.out.println("上传文件的名称:" + uploadFileName + "上传的路径:" + path

              + "上传的类型:" + uploadContentType);

       return SUCCESS;

    }

}

 

 

List集合的action为:;

 

 

 

package cn.csdn.hr.up.action;

 

import java.io.File;

import java.io.IOException;

import java.util.List;

 

import org.apache.commons.io.FileUtils;

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class UploadListAction extends ActionSupport {

         private static final long serialVersionUID = 1L;

         // 得到上传文件的名称一定与name值一直

         private List<File> upload;

         // 上传文件的类型 ContentType

         private List<String> uploadContentType;

         // 上传文件的名称

         private List<String> uploadFileName;

 

         public List<File> getUpload() {

                   return upload;

         }

 

         public void setUpload(List<File> upload) {

                   this.upload = upload;

         }

 

         public List<String> getUploadContentType() {

                   return uploadContentType;

         }

 

         public void setUploadContentType(List<String> uploadContentType) {

                   this.uploadContentType = uploadContentType;

         }

 

         public List<String> getUploadFileName() {

                   return uploadFileName;

         }

 

         public void setUploadFileName(List<String> uploadFileName) {

                   this.uploadFileName = uploadFileName;

         }

 

         public static long getSerialversionuid() {

                   return serialVersionUID;

         }

 

         public String uploadList() {

                   String path = ServletActionContext.getServletContext().getRealPath(

                                     "/upload");

 

                   // 写到指定路径

                   File file = new File(path);

                   // 判断指定的路径下是否有uplaod,如果没有,自动创建

                   if (!file.exists()) {

                            file.mkdirs();

                   }

        

                   try {

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

                                     FileUtils.copyFile(upload.get(i), new File(file, uploadFileName

                                                        .get(i)));

                            }

                   } catch (IOException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   System.out.println("上传文件的名称:" + uploadFileName + "上传的路径:" + path

                                     + "上传的类型:" + uploadContentType);

                   return SUCCESS;

         }

 

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值