文件上传--多文件上传

首先先创建jsp页面(用于多文件上传)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>登录页面</title>

</head>

<body>

    <s:form action="upload.action" enctype="multipart/form-data" method="post">

        <s:file name="upload" label="选择文件" />
        <br />
        <s:file name="upload" label="选择文件" />
        <br />
        <s:file name="upload" label="选择文件" />
        <br />
        <s:submit name="submit" value="上传文件"></s:submit>
    </s:form>

</body>
</html>

success.jsp页面(用来显示上传成功后的文件和文件类型)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>成功页面</title>

</head>

<body>
    您所上传的文件是:<s:property value="uploadFileName"/><br/>
    文件类型:<s:property value="uploadCOntentType"/>

</body>
</html>

接下来创建UploadAction类

package cn.happy.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport {

    // 上传文件的属性
    private File[] upload;
    // 上传文件的类型
    private String[] uploadContentType;
    // 上传文件的名称
    private String[] uploadFileName;
    // 上传文件的地址
    private String savePath;

    @Override
    public String execute() throws Exception {
        byte[] buffer=new byte[1024];
        for (int i = 0; i < upload.length; i++) {

            //建立上传文件的输入流
            FileInputStream fis=new FileInputStream(getUpload()[i]);
            //建立上传文件的输出流, getImageFileName()[i]
            FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+getUploadFileName()[i]);
            int length=fis.read(buffer);
            while(length>0){
                fos.write(buffer,0,length);
                length = fis.read(buffer);

            }
            fis.close();
            fos.flush();
            fos.close();
        }
        return SUCCESS;
    }

    public String getSavePath() {
        return ServletActionContext.getServletContext().getRealPath(savePath);
    }
    public void setSavePath(String savePath) {
        this.savePath = savePath;
    }

    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;
    }

}

最后编写配置文件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>
    <!-- 动态方法调用 -->

    <constant name="struts.devMode" value="false" />

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

        <action name="upload" class="cn.happy.action.UploadAction" method="execute">
            <param name="savePath">/image</param>
           <result name="success">/upload/success.jsp</result>
        </action>
    </package>
</struts>

实现效果展示

选择文件后

时间: 2025-01-03 20:16:00

文件上传--多文件上传的相关文章

WebUploader插件上传大文件单文件和多文件JAVA版使用总结

一.使用webuploader插件的原因说明 被现在做的项目坑了. 先说一下我的项目架构Spring+struts2+mybatis+mysql 然后呢.之前说好的按照2G上传就可以了,于是乎,用了ajaxFileUpload插件,因为之前用图片上传也是用这个,所以上传附件的时候就直接拿来用了 各种码代码,测试也测过了,2G文件上传没问题,坑来了,项目上线后,客户又要求上传4G文件,甚至还有20G以上的..纳尼,你不早说哦... 在IE11下用ajaxFileUpload.js插件上传超过4G的

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

SFTP上传下载文件

secureCRT SFTP上传/下载文件 远程登陆IP secureCRT会话中点击SFTP 3.cd  /home/dowload       linux平台切换到/home/dowload目录 4.cd d:\   windows平台切换到d盘 5.put 文件名           上传 /home/dowload目录下 6.get 文件名   下载文件到windows平台 d盘

linux下上传本地文件至github

本次所用系统为Centos6.4 一.首先,我们需要在系统上安装git 配置好yum源后,可以直接yum安装 yum install git -y 二.安装好git后,可以开始动手上传文件了 第一步:我们需要建立自己的git仓库 cd 到你需要上传的文件目录下,执行git命令,可以将自己的目录变成git可以管理的目录 在这里,我重新创建一个目录,并且生成一个文件 执行git init 进行生成git仓库,可以看到目录中多了一个.git的隐藏文件 第二步:添加文件到我们的git仓库,注意:add

Linux上传下载文件

2种方式:xftp(工具).lrzsz xftp:协议--SFTP.端口号--22 lrzsz: rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. sz(下载):将选定的文件发送(send)到本地机器 rz(上传):运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 安装命令:yum install lrzsz 从服务端发送文件到客户端:sz filename 从客户端上传文件到服务

一个项目中哪些文件是要上传到 git上的,哪些是不必要的

经过测试发现除了上面图中的代码,其他的都是要上传到git上的 , .project文件是一个很关键的文件

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

Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”

Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. [html] view plaincopy <param name="allowedTypes"> image/png,image/bmp,image/jpg </param> 但是,用过这个参数的人都知道,allowedTypes是“文件类型”, 而不是“文件后缀名”,文件类型与文件后缀名有什么区别呢? 就如后缀名为bmp的图片的文件类型为image/b

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文件

uploadify上传大文件

引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章: [Asp.net]Uploadify所有配置说明,常见bug问题分析 . 大文件上传 第一步:修改uploadify参数 1 'fileSizeLimit': '0',//单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值 2 'fileTypeDesc': '文件',//文件描述Image Files 3