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">选择上传文件:<s:file name="file"></s:file><br><s:submit type="button" value="submit"/></td></tr>
</s:form>

struts.xml

 <package name="struts2" extends="struts-default"><action name="upload2"class="com.hloytax.wg.upload.UploadAction1"><result name="success">/success.jsp</result><interceptor-ref name="fileUpload"><param name="maximumSize">409600</param> //上传文件大小设置// <!--allowedTypes (可选) - 以逗号分割的contentType类型列表(例如text/html), <param name="contentType"> application/txt; </param>            <param name="allowedTypes"></param></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></action></package>

UploadAction1.action
public class UploadAction1 extends ActionSupport {/*** */private static final long serialVersionUID = 1L;private File file;  //文件名称  private String fileFileName;  //文件类型  private String fileContentType;  //注意:文件名称和文件类型的名称前缀必须相同,  省略get set 方法 @Override  public String execute() throws Exception{     //获取需要上传文件的文件路径  File uploadFile=new File(ServletActionContext.getServletContext().getRealPath("uploadFile"));  //判断文件是否上传,如果上传的话将会创建该目录  if(!uploadFile.exists()){  uploadFile.mkdir(); //创建该目录
        }  /*//第一种文件上传的方法  //声明文件输入流,为输入流指定文件路径  FileInputStream input=new FileInputStream(file);  //获取输出流,获取文件的文件地址及名称  FileOutputStream out=new FileOutputStream(uploadFile + "\\" +fileFileName);  try{  byte[] b=new byte[1024];//每次写入的大小  int i=0;  while((i=input.read(b))>0){  out.write(b,0,i);  }  }catch(Exception e){  e.printStackTrace();  }finally{  input.close();  out.close();  }  *///第二种文件上传的方法  //FileUtils.copyFile(file,new File(uploadFile+"\\"+fileFileName));  // FileUtils.copyFile(file,new File(uploadFile,fileFileName));  // System.out.println(uploadFile);//第三种方法  BufferedReader bReader=new BufferedReader(new InputStreamReader(new FileInputStream(file)));  BufferedWriter bWriter=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(uploadFile+"\\"+fileFileName)));  System.out.println(uploadFile);   try{  char[] str=new char[1024];  int i=0;  while((i=bReader.read(str))>0){  bWriter.write(str,0,i);   }  }catch(Exception e){  e.printStackTrace();  }finally{  bReader.close();  bWriter.close();  uploadFile.delete();  }  return SUCCESS;  }  

web.xml

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

多文件上传:

private List<File> file;
private List<String> fileContentType;
private List<String> fileFileName;private String savePath;
省略get  set 方法   上传方法  参照单文件上传@Override    public String execute() throws Exception {        List<File> files= getFile();        if (files !=null) {                for (int i = 0; i < files.size(); i++) {                    FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getFileFileName().get(i));                    //建立上传文件的输入流                    System.out.println(getSavePath());                    FileInputStream fis = new FileInputStream(files.get(i));

        byte[] buffer = new byte[1024];        int len = 0;        while ((len = fis.read(buffer)) > 0) {             fos.write(buffer, 0, len);         }         fis.close();         fos.close();     } }      return SUCCESS;

            }

    /**     * 返回上传文件保存的位置     *      * @return     * @throws Exception     */    public String getSavePath() throws Exception {        return ServletActionContext.getServletContext().getRealPath(savePath);    }    public void setSavePath(String savePath) {        this.savePath = savePath;    }

转载于:https://www.cnblogs.com/aGboke/p/4621348.html

Struts2 单个文件上传/多文件上传相关推荐

  1. Struts2之文件上传(单文件/多文件)

    <一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...

  2. struts2登录注册示例_Struts 2文件上传示例

    struts2登录注册示例 Welcome to Struts 2 file upload example. File Upload is one of the common tasks of a w ...

  3. Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)

    Struts2.0文件上传: 浏览器端注意事项: 1.表单提交方式method = post: 2.表单中必须有一个<input type="file" name = &qu ...

  4. java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...

    文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术 如题:文件信息的批量导入-- 项目中经常会遇到客户的一些单表信息的数据批量导入,也就是提供定制Excel表,再把Excel表中 ...

  5. java struts2下载文件_Struts2下多文件的上传与下载

    Struts2下多文件的上传与下载 目录 多文件 上传 下载 随意文件java Struts2单例 配置 动态读取 李顺利 在网络上,对于Java处理文件上传和下载的技术比较多,而Struts作为一款 ...

  6. java action 上传文件_Struts2实现单文件或多文件上传功能

    一.简述 Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置, 二.指定用户上传文件的大小,有两种方式 1)默认是在default.proper ...

  7. Struts文件上传与下载详解_上传单个文件

    大家都知道Servlet上传文件的时候用的是commons-fileupload插件上传的,但是过程极其的麻烦,同样Struts2也有自带的文件上传,但是过程比Servlet里面的简单了不少,接下来请 ...

  8. php webuploader大文件,web uploader 上传大文件总结

    由于业务需要,需要上传大文件,已有的版本无法处理IE版本,经过调研,百度的 webuploader 支持 IE 浏览器,而且支持计算MD5值,进而可以实现秒传的功能. 大文件上传主要分为三部分,预上传 ...

  9. 推荐2个命令快速在本地和服务器之间上传下载文件

    FileZila是一个常用的在服务器和本地电脑之间传输大文件的工具,可以断点续传.断开重连,在传输大数据时很方便.但偶尔我们也希望能下载单个或多个小文件在本地修改或查看,或上传单个小文件,有没有不需要 ...

最新文章

  1. Cloudflare Workers支持WebAssembly和键值存储
  2. C# 判断两张图片是否一致,极快速
  3. DVWA系列之24 high级别上传漏洞
  4. 简约响应式导航主题VIK_WordPress模板
  5. Xpath在选择器中正确,在代码中返回的是空列表问题
  6. html自动给js添加版本号,通过gulp 在原html文件上自动化添加js、css版本号
  7. 每日总结app_焊工日常工作的主要职责是什么?焊工证考试用什么APP复习?
  8. 递归加载无限级分类,虽然我觉得效率不太好。
  9. maven项目中引用jave
  10. C语言 输出1000以内所有完数
  11. 嵌入式软件设计层级划分概念
  12. 麒麟V10 kylin v10服务器版yum软件源官方源亲测可用
  13. 按键精灵-自动化脚本
  14. 求过圆心直线与圆的两个交点
  15. linux上的社交软件,瞧瞧社交app-瞧瞧下载v1.6.0-Linux公社
  16. 最优化理论与方法-牛顿迭代法
  17. Tomcat优化思路
  18. BUUCTF:[GKCTF2020]Sail a boat down the river
  19. LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件...
  20. java小组的队名,小组队名和口号

热门文章

  1. PHPCMS 错误日志 Only variables should be passed by ...
  2. 获取线程结束代码(Exit Code)
  3. Mac用Java写出hello,mac中c#的helloworld
  4. C++实现字符串和整数之间的相互转换
  5. Win10 Wsl可以装mysql_WSL win10子系统linux-ubuntu 安装mysql root用户远程连接 开机启动mysql服务 用navicat连接登录...
  6. windows下安装whl文件
  7. linux下kafka常用命令
  8. Https单向认证和双向认证介绍
  9. ScribeFireBlog 发的一篇在Cnblogs的日志
  10. 基于SSM实现的民宿网站系统