struts文件上传(多文件)

第01步:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.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>

第02步:编写action类

package com.self.action;

import java.io.File;

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

import com.opensymphony.xwork2.ActionContext;

/**文件上传**/
public class FileUpload {
    private File[] image;//得到上传的文件
    private String[] imageFileName;//获取上传文件的名称,命名规则:页面属性名+FileName
    private String[] imageContentType;//得到上传文件的类型

    public FileUpload() {
    }

    /**上传方法**/
    public String uploadFile(){
        try {
        String realPath=ServletActionContext.getServletContext().getRealPath("/images");
        System.out.println("工程路径(/images路径,文件保存路径):"+realPath);
        if(image!=null){
            System.out.println("已经获得上传文件!");
            File parentFile=new File(realPath);//指定文件保存路径
            if(!parentFile.exists()){//保存路径不存在,则创建
                parentFile.mkdirs();
            }
            for(int i=0;i<image.length;i++){
                File saveFile=new File(parentFile,imageFileName[i]);//parentFile:保存路径,imageFileName:保存文件名
                FileUtils.copyFile(image[i], saveFile);//将上传的image复制到saveFile中
            }
            ActionContext.getContext().put("message", "保存成功!");
        }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "tsuccess";
    }

    public File[] getImage() {
        return image;
    }

    public void setImage(File[] image) {
        this.image = image;
    }

    public String[] getImageFileName() {
        return imageFileName;
    }

    public void setImageFileName(String[] imageFileName) {
        this.imageFileName = imageFileName;
    }

    public String[] getImageContentType() {
        return imageContentType;
    }

    public void setImageContentType(String[] imageContentType) {
        this.imageContentType = imageContentType;
    }
}

第03步:配置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">

<struts>
    <constant name="struts.action.extension" value="do,action"/>

    <package name="transform" namespace="/" extends="struts-default">
        <action name="list_*" class="com.self.action.FileUpload" method="{1}">
            <result name="tsuccess">
                /outdata.jsp
            </result>
        </action>
    </package>
</struts>

第04步:编写界面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <body>
      <form method="post" action="list_uploadFile.action" enctype="multipart/form-data">
          文件1:<input type="file" name="image">
          文件2:<input type="file" name="image">
          文件3:<input type="file" name="image">
          <BR>
          <input type="submit" value="上传文件">
      </form>
  </body>
</html>

第05步:注意事项

注意事项请参考:struts文件上传(单文件)

第06步:导入包

时间: 2024-12-26 00:02:34

struts文件上传(多文件)的相关文章

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件

Javascript Fromdata 与jQuery 实现Ajax文件上传以及文件的删除

前端HTML代码: <!DOCTYPE html> <html> <head> <title>ajax</title> <script type="text/javascript" src="js/jquery.js"></script> <meta charset="utf-8" /> <style type="text/css&qu

文件上传---普通文件fileupload.jar和url文件httpUrlConnection

文件上传---普通文件和url文件 主要用来学习使用common-fileupload.jar和java.net.httpURLConnection 普通文件: 1 //上传xls文件到临时目录 2 if (! ServletFileUpload.isMultipartContent(request)) return; 3 DiskFileItemFactory factory = new DiskFileItemFactory(); // 建立factory 4 factory.setSize

SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程免费下载 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和Spr

关于异步文件上传和文件表单元素的复制、设置和清除

一.解决文件异步上传的方法有3种:1.使用iframe 2.使用FormData(html5新功能)  3.使用flash 1.使用iframe 原来我以为使用iframe是把整个表单复制到iframe里面,然后把iframe里面的表单提交给服务器,这样来实现表单的异步上传.最后我想错了,实现原理比我想的要简单的多.先看一下代码: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <

struts2文件上传,文件类型 allowedTypes

struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript', 3 '.aif' : 'audio/x-aiff', 4 '.aifc' : 'audio/x-aiff', 5 '.aiff' : 'audio/x-aiff', 6 '.au' : 'audio/basic', 7 '.avi' : 'video/x-msvideo', 8 '.bat'

Struts2 单个文件上传/多文件上传

1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action="upload2.action" method="post" theme="simple" enctype="multipart/form-data"> <tr> <td id="more&quo

文件上传--多文件上传

首先先创建jsp页面(用于多文件上传) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() +

文件上传(多文件上传)/下载

通常我们会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在这里我分别就文件下载和多文件上传的源代码进行一下讲 文件上传 首先先创建jsp页面(用于多文件上传) <%@ page language="java" import="java.util.

文件上传-单个文件

<?phpclass FileUpload{ private $orignName;//原始文件名字 private $tmpFileName;//临时文件的名称 private $fileType;//文件类型 private $fileSize;//文件大小 private $newFileName;//新文件名称 private $errorNumber=0;//错误号,默认没错误 private $errorMess="";//用来提供错误报告 private $file