关于Struts2的多文件上传

之前写过一篇文章,关于Struts2文件上传:http://www.cnblogs.com/lichenwei/p/3927964.html

现在来说下多文件上传,其实就把上传文件当成是一个数组去处理,和单文件上传是一样的思路,直接贴一段代码:

uploads.jsp

<%@ page language="java contentTypetext/html; charset=utf-8 pageEncodingutf-8"%>
@ taglib prefixs uri/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<htmlheadmeta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"title>上传文件示例</bodys:actionerror/>
s:fielderrors:form action="uploads.action" theme="simple" namespace="/" method="post" enctype="multipart/form-data">
    s:file label="上传文件:" name="upload"></s:files:submit value="提交上传"s:submits:form>

 

UploadsAction.java

package com.lcw.struts2.upload;

import java.io.File;
 java.io.IOException;

 org.apache.commons.io.FileUtils;
 org.apache.struts2.ServletActionContext;

 com.opensymphony.xwork2.ActionSupport;

public class UploadsAction extends ActionSupport {
    // <s:file label="上传文件:" name="upload"></s:file>
    private File[] upload; 命名应该和上传页面name属性值保持一致
    private String[] uploadContentType; 属性值+ContentType
    private String[] uploadFileName; 属性值+FielName

    void setUpload(File[] upload) {
        this.upload = upload;
    }

     setUploadContentType(String[] uploadContentType) {
        this.uploadContentType = uploadContentType;
    }

     setUploadFileName(String[] uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

    public String upload() {

        for (int i = 0; i < upload.length; i++) {
            File destFile = new File(ServletActionContext.getServletContext()
                    .getRealPath("/uploads")
                    + "/" + uploadFileName[i]);
            try {
                 工具类
                FileUtils.copyFile(upload[i],destFile);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return SUCCESS;
    }
}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"strutsconstant name="struts.devMode" value="true" />
    ="struts.multipart.maxSize"="20000000000"constant>
    
    <!-- 全局国际化配置 -->
    ="struts.custom.i18n.resources"="messages">

    package ="struts2test" extends="struts-default">
        action ="uploads" class="com.lcw.struts2.upload.UploadsAction">
            result ="success">/index.jspresult="input">/upload.jsp>

>

 

来看下效果图:

相关文章

开发过程中是不可避免地会出现各种异常情况的,例如网络连接...
说明:使用注解方式实现AOP切面。 什么是AOP? 面向切面编程...
Spring MVC中的拦截器是一种可以在请求处理过程中对请求进行...
在 JavaWeb 中,共享域指的是在 Servlet 中存储数据,以便在...
文件上传 说明: 使用maven构建web工程。 使用Thymeleaf技术...
创建初始化类,替换web.xml 在Servlet3.0环境中,Web容器(To...