struts2多文件上传

struts2实现多文件上传
jsp页面:

<%@ page language="java" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="/struts-tags"   prefix="s"%>
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
    </head>
  <body>
    <form action="${pageContext.request.contextPath}/upload/uploadsAction_saveFiles.action"  
          name="form1"  method="post"  enctype="multipart/form-data" >
             上传文件名称:<input type="file" name="uploadImages"><br>
             上传文件名称:<input type="file" name="uploadImages"><br>
             上传文件名称:<input type="file" name="uploadImages"><br>

           <input type="submit" value="上传">
    </form>
  </body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!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="/upload" extends="struts-default">
        <action name="uploadAction_saveFile" class="cn.itcast.action.UploadAction" method="saveFile">
            <result name="success">/upload/success.jsp</result>
            <result name="input">/upload/error.jsp</result>
            <!-- 配置拦截器的参数   这里是配置文件上传的拦截器  -->
            <interceptor-ref name="defaultStack">
                <!-- 
                    配置上传文件的大小
                        这里配置的是上传单个文件的大小
                 -->
                <param name="fileUpload.maximumSize">20971520</param>
                <!-- 配置上传文件允许的类型,如果配置多个值用","隔开 -->
                <param name="fileUpload.allowedTypes">text/plain</param>
                <!-- 配置上传文件的扩展名,如果配置多个值用","隔开 -->
                <param name="fileUpload.allowedExtensions">.doc,.txt</param>
            </interceptor-ref>
        </action>

        <!-- 多文件上传  也可以像配置单文件参数那样配置一些限制-->
        <action name="uploadsAction_saveFiles" class="cn.itcast.action.UploadsAction" method="saveFiles">
            <result name="success">/upload/success.jsp</result>
        </action>
    </package>
</struts>

Action类:

package cn.itcast.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 File[] uploadImages;//上传文件的存储的临时文件

    private String[] uploadImagesContentType;//上传文件的类型

    private String[] uploadImagesFileName;//上传文件的真实名称

    public File[] getUploadImages() {
        return uploadImages;
    }
    public void setUploadImages(File[] uploadImages) {
        this.uploadImages = uploadImages;
    }
    public String[] getUploadImagesContentType() {
        return uploadImagesContentType;
    }
    public void setUploadImagesContentType(String[] uploadImagesContentType) {
        this.uploadImagesContentType = uploadImagesContentType;
    }
    public String[] getUploadImagesFileName() {
        return uploadImagesFileName;
    }
    public void setUploadImagesFileName(String[] uploadImagesFileName) {
        this.uploadImagesFileName = uploadImagesFileName;
    }   

    public String saveFiles(){
        System.out.println("UploadsAction-----saveFiles()");
        //获取文件的保存路径
        String path=ServletActionContext.getServletContext().getRealPath("/fileupload");    
        for(int i=0;i<uploadImages.length;i++){
            //循环创建一组名为uploadImagesFileName的文件
            File file=new File(path,uploadImagesFileName[i]);
            try {
                FileUtils.copyFile(uploadImages[i], file);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return "success";
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值