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">选择上传文件:<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 单个文件上传/多文件上传相关推荐
- Struts2之文件上传(单文件/多文件)
<一>简述: Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置,<interceptor name="fileUp ...
- struts2登录注册示例_Struts 2文件上传示例
struts2登录注册示例 Welcome to Struts 2 file upload example. File Upload is one of the common tasks of a w ...
- Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)
Struts2.0文件上传: 浏览器端注意事项: 1.表单提交方式method = post: 2.表单中必须有一个<input type="file" name = &qu ...
- java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...
文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术 如题:文件信息的批量导入-- 项目中经常会遇到客户的一些单表信息的数据批量导入,也就是提供定制Excel表,再把Excel表中 ...
- java struts2下载文件_Struts2下多文件的上传与下载
Struts2下多文件的上传与下载 目录 多文件 上传 下载 随意文件java Struts2单例 配置 动态读取 李顺利 在网络上,对于Java处理文件上传和下载的技术比较多,而Struts作为一款 ...
- java action 上传文件_Struts2实现单文件或多文件上传功能
一.简述 Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置, 二.指定用户上传文件的大小,有两种方式 1)默认是在default.proper ...
- Struts文件上传与下载详解_上传单个文件
大家都知道Servlet上传文件的时候用的是commons-fileupload插件上传的,但是过程极其的麻烦,同样Struts2也有自带的文件上传,但是过程比Servlet里面的简单了不少,接下来请 ...
- php webuploader大文件,web uploader 上传大文件总结
由于业务需要,需要上传大文件,已有的版本无法处理IE版本,经过调研,百度的 webuploader 支持 IE 浏览器,而且支持计算MD5值,进而可以实现秒传的功能. 大文件上传主要分为三部分,预上传 ...
- 推荐2个命令快速在本地和服务器之间上传下载文件
FileZila是一个常用的在服务器和本地电脑之间传输大文件的工具,可以断点续传.断开重连,在传输大数据时很方便.但偶尔我们也希望能下载单个或多个小文件在本地修改或查看,或上传单个小文件,有没有不需要 ...
最新文章
- Cloudflare Workers支持WebAssembly和键值存储
- C# 判断两张图片是否一致,极快速
- DVWA系列之24 high级别上传漏洞
- 简约响应式导航主题VIK_WordPress模板
- Xpath在选择器中正确,在代码中返回的是空列表问题
- html自动给js添加版本号,通过gulp 在原html文件上自动化添加js、css版本号
- 每日总结app_焊工日常工作的主要职责是什么?焊工证考试用什么APP复习?
- 递归加载无限级分类,虽然我觉得效率不太好。
- maven项目中引用jave
- C语言 输出1000以内所有完数
- 嵌入式软件设计层级划分概念
- 麒麟V10 kylin v10服务器版yum软件源官方源亲测可用
- 按键精灵-自动化脚本
- 求过圆心直线与圆的两个交点
- linux上的社交软件,瞧瞧社交app-瞧瞧下载v1.6.0-Linux公社
- 最优化理论与方法-牛顿迭代法
- Tomcat优化思路
- BUUCTF:[GKCTF2020]Sail a boat down the river
- LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件...
- java小组的队名,小组队名和口号
热门文章
- PHPCMS 错误日志 Only variables should be passed by ...
- 获取线程结束代码(Exit Code)
- Mac用Java写出hello,mac中c#的helloworld
- C++实现字符串和整数之间的相互转换
- Win10 Wsl可以装mysql_WSL win10子系统linux-ubuntu 安装mysql root用户远程连接 开机启动mysql服务 用navicat连接登录...
- windows下安装whl文件
- linux下kafka常用命令
- Https单向认证和双向认证介绍
- ScribeFireBlog 发的一篇在Cnblogs的日志
- 基于SSM实现的民宿网站系统