【Java】Struts2文件上传-单文件上传,多文件上传

  • 单文件上传

表单:

    <form action="upload1.action" method="post" enctype="multipart/form-data">
        姓名:<input type="text" name="name" id="name"><br>
        照片:<input type="file" name="photo"> <br>
        <input type="submit" value="提交">
    </form>

action:

package com.hj.action;

import org.apache.commons.io.FileUtils;

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

public class FileUploadNormal1 {
    private String name; // 表单中的name
    private File photo;  // 表单中的photo
    private String photoFileName; // 表单中文件的名字+FileName,如果文件属性名为myPhoto,则此处为myPhotoFileName
    private String photoContentType; // +ContentType

    public String execute() throws IOException {
        System.out.println(this.photoFileName);
        System.out.println(this.photoContentType);
        File destFile = new File("C:\\File_rec\\tmp\\"+photoFileName); // 上传到的路径     // File destFile = new File(ServletActionContext.getServletContext().getRealPath("/upload/"+photoFileName)); //项目路径
        FileUtils.copyFile(photo,destFile);
        return "success";
    }
    // getter,setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public File getPhoto() {
        return photo;
    }

    public void setPhoto(File photo) {
        this.photo = photo;
    }

    public String getPhotoFileName() {
        return photoFileName;
    }

    public void setPhotoFileName(String photoFileName) {
        this.photoFileName = photoFileName;
    }

    public String getPhotoContentType() {
        return photoContentType;
    }

    public void setPhotoContentType(String photoContentType) {
        this.photoContentType = photoContentType;
    }
}
  • 多文件上传

上传多个文件只需要将文件相关的属性,改为数组形式即可

表单:

<form action="upload2.action" method="post" enctype="multipart/form-data">
    姓名:<input type="text" name="name" id="name"><br>
    照片:<input type="file" name="photo"> <br>
    照片:<input type="file" name="photo"> <br>
    照片:<input type="file" name="photo"> <br>
    <input type="submit" value="提交">
</form>

多文件上传的action:

package com.hj.action;

import org.apache.commons.io.FileUtils;

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

public class FileUploadNormal2 {
    private String name; // 表单中的name
    private File[] photo;  // 表单中的photo
    private String[] photoFileName; // 表单中文件的名字+FileName,如果文件属性名为myPhoto,则此处为myPhotoFileName
    private String[] photoContentType; // +ContentType

    public String execute() throws IOException {
        for (int i = 0; i < photo.length; i++) {
            System.out.println(this.photoFileName[i]);
            System.out.println(this.photoContentType[i]);
            File destFile = new File("C:\\File_rec\\tmp\\"+photoFileName[i]);
            FileUtils.copyFile(photo[i],destFile);
        }

        return "success";
    }

    // getter,setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public File[] getPhoto() {
        return photo;
    }

    public void setPhoto(File[] photo) {
        this.photo = photo;
    }

    public String[] getPhotoFileName() {
        return photoFileName;
    }

    public void setPhotoFileName(String[] photoFileName) {
        this.photoFileName = photoFileName;
    }

    public String[] getPhotoContentType() {
        return photoContentType;
    }

    public void setPhotoContentType(String[] photoContentType) {
        this.photoContentType = photoContentType;
    }
}

原文地址:https://www.cnblogs.com/to-red/p/11302445.html

时间: 2024-08-25 21:32:03

【Java】Struts2文件上传-单文件上传,多文件上传的相关文章

servlet文件上传2——复合表单提交(数据获取和文件上传)

上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(commons-fileupload-1.2.1.jar   commons-io-1.3.2.jar )进行普通数据获取和文件上传:普通文本需要用getString("编码格式")方法获取,否则汉字会出现乱码,最开始我一直用的getString()获取,发现传到数据的数据全是乱码,查看流浪器的里面的

上传文件form表单enctype=&quot;multipart/form-data&quot;传值解决办法(代原代码)

最近做的一个项目里遇到一个问 题,就是如何在上传文件的表单里传递其它的变量,因为一但form表单用了enctype="multipart/form-data"类型后,所有的值 都是以二进制进行传递的,所以当我们想取出这个表单里传递过来的其它变量的时候,就会遇到一个问题,那就是用request取不到传递过来的变量.在网上 找了很多资料,也都是大至说一下,在这里我就借花献佛发个完整的原代码解决这个问题!!! 工程目录如下: 两个jar可以去apache上下载: http://commons

Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门

说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代表用户的请求. ServletResponse – 代表用户的响应. 本篇博客讲解: ServletRequest – 代表用户的请求. ServletResponse – 代表用户的响应. 表单中的多选框参数接收. 文件的上传技术. ServletRequest : ServletRequest

javaEE:day6-requset和response用法、表单参数的接受、文件手动上传(简易版)

通过<%=request.getContextPath() %> 可以将项目名写活,这样,即使项目名变了,仍可以运行. request代码每一次请求的容器.浏览器每次请求都是一个新的request对象.因此放在request里面的属性request.getAttribute()是空的,上一个request放的属性request.setAttribute() 是上一个的.与这次无关.但如果是转发的时候,那么request对象是共享的.这种情况下,两次的request是同一个.这种情况下,里面的属

java上传、下载、删除ftp文件

一共三个类,一个工具类Ftputil.,一个实体类Kmconfig.一个测试类Test 下载地址:http://download.csdn.net/detail/myfmyfmyfmyf/6697107 Ftputil类--------------- [java] view plaincopy package ftpDemo; import java.io.DataOutputStream; import java.io.InputStream; import java.io.OutputStr

? 为什么上传文件的表单里要加个属性enctype----摘录

上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么写,知其然而不知其所以然.那到底为什么要添加这个属性呢?它是什么意思呢?它又有什么其他可选值呢? 其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x-www-form-urlencoded".这个属性管理的是表单的MIME编码,共有三个值可

js 禁止表单提交的方法(文件上传)

添加图片上传的表单,在form 添加属性onsubmit,提交之前会执行其中的方法,若返回FALSE,不会提交,返回TRUE,才会提交 <form method="post" enctype="multipart/form-data" action="/UpLoad.ashx" onsubmit="return check()"> <input type="file" name="

java实现服务端守护进程来监听客户端通过上传json文件写数据到hbase中

1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试代码.这里须有一个需要提到的是,我在实现接收json文件的同时,而且还需将数据写到hbase中.写入到hbase当中采用的是批量插入的方式,即一次插入多条记录. 好了,有了前面的说明,下面来简单的说一下我实现的服务端的小程序把. 2.为了实现服务端能够监听客户端的行为,因此我在服务端采用多线程的技术

java http大文件上传,断点续传项目研究,Github上传源代码

1,项目调研 因为需要研究下断点上传的问题.找了很久终于找到一个比较好的项目. 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面. https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比. 点击[Pause]暂停,点击[Resume]继续. 2,代码分析 原始项目: https://code.google.com/p/java-lar

HTML 文件类表单元素如何限制上传类型,Accept属性设置

需求描述:简单的控制file的选择类型 解决方法:使用HTML  input file 的accept属性控制 实例: <form action="demo_form.asp"> <input type="file" name="pic" accept="image/gif,image/jpg" /> <input type="submit" /> </form&g