分享知识-快乐自己:Struts2文件上传及文件下载
1)Struts2单文件上传

action:类文件
package com.mlq.action; import com.opensymphony.xwork2.ActionSupport;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext; import java.io.File;
import java.io.IOException; /**
* Struts2:单文件上传
*
* @author asus
*/
public class UploadFileAction extends ActionSupport { //临时文件
private File upload;
//文件类型(底层规定属性名称)
private String uoloadContextType;
//文件名称(底层规定属性名称)
private String uploadFileName;
//文件存放路径
private String savePath; @Override
public void validate() {
System.out.println("严重方法");
} //默认访问方法
@Override
public String execute() throws IOException {
//文件全路径
File destFile = new
File(ServletActionContext.getRequest().getRealPath(savePath) + "\\" + getUploadFileName());
String path = destFile.getPath();
System.out.println(path + "------");
FileUtils.copyFile(upload, destFile);
return "success";
} public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUoloadContextType() {
return uoloadContextType;
}
public void setUoloadContextType(String uoloadContextType) {
this.uoloadContextType = uoloadContextType;
}
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.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="user" namespace="/user" extends="struts-default">
<!--全局配置信息-->
<global-results>
<result name="input">/upload.jsp</result>
</global-results>
<!--文件上传-->
<action name="upload" class="com.mlq.action.UploadFileAction">
<!--内置设定action类中的属性值-->
<param name="savePath">/upload</param>
<result>/upload.jsp</result>
<!--设定文件参数-->
<interceptor-ref name="fileUpload">
<param name="maximumSize">512000</param>
<param name="allowedType">image/jpg</param>
</interceptor-ref>
<!--默认的拦截器-->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
upload.jsp:JSP页面
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: asus
Date: 2018/10/4
Time: 10:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>StrutsTow文件上传</title>
</head>
<body>
<div>
<fieldset>
<legend>Struts2文件上传</legend>
<form action="/user/upload" enctype="multipart/form-data" method="post">
选择文件:<input type="file" name="upload">
<input type="submit" value="提交">
</form>
</fieldset>
<br/><br/>
<fieldset>
<legend>上传的图片回显</legend>
<img width="200px" height="300px" src="/upload/<s:property value='uploadFileName'/>"/>
</fieldset>
<br/><br/>
<fieldset>
<legend>错误信息</legend>
<s:fielderror></s:fielderror>
</fieldset>
</div>
</body>
</html>
Web.xml:核心配置
<!--核心控制器-->
<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>upload.jsp</welcome-file>
</welcome-file-list>
2)Struts2多文件上传

action:类文件
package com.mlq.action; import com.opensymphony.xwork2.ActionSupport;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext; import java.io.File;
import java.io.IOException; /**
* Struts2:单文件上传
*
* @author asus
*/
public class UploadsFileAction extends ActionSupport { //临时文件
private File[] upload;
//文件类型
private String[] uoloadContextType;
//文件名称
private String[] uploadFileName;
//文件存放路径
private String savePath; @Override
public void validate() {
System.out.println("严重方法");
} //默认访问方法
@Override
public String execute() throws IOException {
for (int i = 0; i < upload.length; i++) {
File temp=upload[i];
//文件全路径
File destFile = new
File(ServletActionContext.getRequest().getRealPath(savePath) + "\\" + uploadFileName[i]);
String path = destFile.getPath();
System.out.println(path + "------");
FileUtils.copyFile(temp, destFile);
}
return "success";
} public File[] getUpload() {
return upload;
} public void setUpload(File[] upload) {
this.upload = upload;
} public String[] getUoloadContextType() {
return uoloadContextType;
} public void setUoloadContextType(String[] uoloadContextType) {
this.uoloadContextType = uoloadContextType;
} public String[] getUploadFileName() {
return uploadFileName;
} public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
} public String getSavePath() {
return savePath;
} public void setSavePath(String savePath) {
this.savePath = savePath;
}
}
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.multipart.maxSize" value="5097152"/>
<package name="user" namespace="/user" extends="struts-default">
<!--全局配置信息-->
<global-results>
<result name="input">/upload.jsp</result>
</global-results>
<!--文件上传-->
<action name="upload" class="com.mlq.action.UploadsFileAction">
<!--内置设定action类中的属性值-->
<param name="savePath">/upload</param>
<result>/upload.jsp</result>
<!--设定文件参数-->
<interceptor-ref name="fileUpload">
<param name="maximumSize">512000</param>
<param name="allowedType">image/jpg</param>
</interceptor-ref>
<!--默认的拦截器-->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
upload.jsp:JSP页面
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: asus
Date: 2018/10/4
Time: 10:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>StrutsTow文件上传</title>
</head>
<body>
<div> <fieldset>
<legend>Struts2文件上传</legend>
<form action="/user/upload" enctype="multipart/form-data" method="post">
选择文件:<input type="file" name="upload">
<br/>
选择文件:<input type="file" name="upload">
<br/>
选择文件:<input type="file" name="upload">
<input type="submit" value="提交">
</form>
</fieldset>
<br/><br/>
<fieldset>
<legend>上传的图片回显</legend>
<s:iterator value="uploadFileName">
<img width="200px" height="300px" src="/upload/<s:property/>"/>
</s:iterator>
</fieldset>
<br/><br/>
<fieldset>
<legend>错误信息</legend>
<s:fielderror></s:fielderror>
</fieldset> </div>
</body>
</html>
web.xml:核心配置
<!--核心控制器-->
<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>upload.jsp</welcome-file>
</welcome-file-list>
3)Struts2文件下载
action:类文件
package com.mlq.action; import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext; import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream; /**
* Struts2:文件下载
*
* @author asus
*/
public class FileDownAction extends ActionSupport { /***
* 读取下载文件的目录
*/
private String inputPath;
/***
* 下载文件的文件名
*/
private String fileName;
/***
* 读取下载文件的输入流
*/
private InputStream inputStream; public String getInputPath() {
return inputPath;
} public void setInputPath(String inputPath) {
this.inputPath = inputPath;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
} public InputStream getInputStream() throws FileNotFoundException {
String realPath =
ServletActionContext.getServletContext().getRealPath(inputPath);
System.out.println(realPath+"\\"+fileName);
return new BufferedInputStream(new FileInputStream(realPath+"\\"+fileName));
} public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
}
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>
<package name="user" namespace="/user" extends="struts-default">
<!--文件上传-->
<action name="downLoad" class="com.mlq.action.FileDownAction">
<!--指定文件下载目录地址-->
<param name="inputPath">/upload</param>
<!--设置下载类型-->
<result name="success" type="stream">
<!--设置发送到浏览器的MIMe类型-->
<param name="contentType">application/octet-stream</param>
<!--设置输入流的名称-->
<param name="inputStream">inputStream</param>
<!--提示用户打开还是下载-->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<!--缓冲区的大小:没有严格要求可随意设置-->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
</struts>
index.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: asus
Date: 2018/10/4
Time: 10:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>StrutsTow文件下载</title>
</head>
<body>
<div> <fieldset>
<legend>Struts2文件下载</legend>
<a href="/user/downLoad?fileName=t01a4036c8714c169fd.jpg">文件下载</a>
</fieldset> </div>
</body>
</html>
web.xml核心配置
<!--核心控制器-->
<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>
单文件上传Demo: 多文件上传Demo: 文件下载Demo:
分享知识-快乐自己:Struts2文件上传及文件下载的更多相关文章
- Struts2文件上传和文件下载
一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...
- Struts2 文件上传和文件下载
一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...
- struts2的文件上传和文件下载
实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...
- 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载
摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- Struts2文件上传下载
Struts2文件上传 Struts2提供 FileUpload拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容,fileUpload拦截器 默认在defau ...
- Struts2文件上传和下载(原理)
转自:http://zhou568xiao.iteye.com/blog/220732 1. 文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1) ...
- struts2文件上传大小限制问题小结
一:首先看一下程序执行中出现的对应报错信息,如下所示: [WARN ] 2015-03-03 15:31:11 :Unable to parse request org.apache.commons. ...
随机推荐
- 升级Jekyll 3.0
每一次的升级都得又一次折腾一次,jekyll也不例外 从jekyll 2.5.2 升级为jekyll 3.0.1 错误一: jekyll 3.0.1 | Error: Permission denie ...
- Python爬虫爬取美剧网站
一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao ...
- xshell中配置linux密钥登陆
参见 http://www.aiezu.com/system/linux/xshell_ssh_public-key_login.html 配置只能秘钥登陆 http://blog.csdn.net/ ...
- TCP/IP详解 卷一(第七、八章 Ping、Traceroute程序)
Ping程序 Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达. 该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答. ping程序还能测出到这台主机的往返时 ...
- window.opener
window.opener 实际上就是通过window.open打开的窗体的父窗体. 比如在父窗体parentForm里面 通过 window.open("subForm.html" ...
- iOS常用的加密方式
MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...
- C#各种导入Excel文件的数据的方法总结
在导入前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码 protected void btnImport_Click(object sender, ...
- Flash威胁的不不过浏览器
Adobe为提升Flash的安全性.在最新版本号的Flash(18.0.0.209)增加了很多攻击缓解技术. 新的攻击缓解技术为: l <*>长度验证–添加长度cookie到Vector ...
- Spring学习三----------注入方式
© 版权声明:本文为博主原创文章,转载请注明出处 Spring注入方式 本篇博客只讲最常用的两种注入方式:设值注入和构造器注入.代码为完整代码,复制即可使用. 1.目录结构 2.pom.xml < ...
- 深入浅出Attribute(三)
约定: 1.”attribute”和”attributes”均不翻译 2.”property”译为“属性” 3.msdn中的原句不翻译 4.”program entity”译为”语言元素” Attri ...