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文件上传及文件下载的更多相关文章

  1. Struts2文件上传和文件下载

    一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...

  2. Struts2 文件上传和文件下载

    一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...

  3. struts2的文件上传和文件下载

    实现使用Struts2文件上传和文件下载: 注意点: (1)对应表单的file1和私有成员变量的名称必须一致 <input type="file" name="fi ...

  4. 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载

    摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...

  5. 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】

    一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...

  6. springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传

    总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...

  7. Struts2文件上传下载

    Struts2文件上传 Struts2提供 FileUpload拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容,fileUpload拦截器 默认在defau ...

  8. Struts2文件上传和下载(原理)

    转自:http://zhou568xiao.iteye.com/blog/220732 1.    文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1)     ...

  9. struts2文件上传大小限制问题小结

    一:首先看一下程序执行中出现的对应报错信息,如下所示: [WARN ] 2015-03-03 15:31:11 :Unable to parse request org.apache.commons. ...

随机推荐

  1. Java排序算法(三):直接插入排序

    [基本思想] 关键:在前面已经排好序的序列中找到合适的插入位置 步骤: 1. 从第一个元素開始,该元素能够觉得已经排好序. 2. 取出下一个元素.在已经排好序的元素序列中从后往前扫描进行比較. 3. ...

  2. 每天5道面试题(二)java基础

    说出Servlet的生命周期,并说出Servlet和CGI的差别 Servlet被server实例化后,容器执行其init方法,请求到达时执行其service方法,service方法自己主动派遣执行与 ...

  3. 分享个免费的货币汇率API

    先上API文档链接:https://www.juhe.cn/docs/api/id/23,支持人民币牌价.外汇汇率查询:数据仅供参考,交易时以银行柜台成交价为准. 人民币牌价 接口地址:http:// ...

  4. project 的用法

    任务和子任务,树状结构: 点击一个绿色的箭头就可以实现. 时间的话:视图→甘特图→双击“开始时间”修改即可

  5. linux设备驱动程序之并发和竞态(二)

    事实上这blog都是阅读ldd3时的一些总结,巩固自己的学习.也方便后期的使用.大家也能够直接阅读ldd3原文. 锁陷阱         所谓的锁陷阱就是防止死锁.         不明白的规则:   ...

  6. frame框架及其实例

    框架概念 : 谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 <FRAMESET> <FRAME> 即可,面所有框架标记需要放在一个总起的 html 档,这个档案 ...

  7. 1. WPF学习之概述

    <深入浅出WPF> 前言: C#专业的朋友推荐的WPF入门书籍<深入浅出WPF>,没学过的朋友从今天开始和我一起开启WPF学习之旅吧! 什么是WPF? WPF 是windows ...

  8. CentOS 6.9上安装Mysql 5.7.18 安装

    CentOS 6.9上安装Mysql 5.7.18 安装 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-g ...

  9. [转]XMPP基本概念--节(stanza)

    本文介绍在XMPP通信中最核心的三个XML节(stanza).这些节(stanza)有自己的作用和目标,通过组织不同的节(stanza),就能达到我们各种各样的通信目的. 首先我们来看一段XMPP流. ...

  10. 10 redis--频道发布与消息订阅

    消息订阅 使用办法: 订阅端: Subscribe 频道名称 发布端: publish 频道名称 发布内容 客户端例子: redis 127.0.0.1:6379> subscribe news ...