配置xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><package name="down" namespace="/down" extends="struts-default"><action name="down_*" class="star.july.a_download.DownloadAction" method="{1}"><!-- 配置下载视图:stream --><result name="down" type="stream"><!-- 给视图注入参数 --><!-- 弹出框内容 --><param name="contentDisposition">${fileName}</param><!-- 一次读取文件大小 --><param name="buffersize">512</param><!-- 提供需要下载的文件 --><param name="inputName">fileContext</param></result></action></package></struts>

编写Action类:

</pre><pre name="code" class="java">package star.july.a_download;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class DownloadAction extends ActionSupport {File file = null;// 设置下载文件内容public InputStream getFileContext() {try {file = new File("C:/Users/Starjuly/Pictures/Saved Pictures/拿画笔的女孩.jpg");InputStream in = new FileInputStream(file);return in;} catch (FileNotFoundException e) {e.printStackTrace();throw new RuntimeException(e);}}// 返回文件名称public String getFileName() {try {String disposition ="";HttpServletRequest request = ServletActionContext.getRequest();//获取文件头String head = request.getHeader("User-Agent");if(head.contains("firefox")){//火狐浏览器//火狐浏览器要在=号前加*才能识别中文disposition += "attachment;fileName*=";}else{//非火狐disposition += "attachment;fileName=";}String name = file.getName();//解决文件的中文名问题String str = URLEncoder.encode(name, "utf-8");return disposition+str;} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}public String down() {// 返回一个下载视图return "down";}
}

Struts2 文件下载相关推荐

  1. Struts2之struts2文件下载详解

    一.学习案例:通过在downloadfile.jsp页面点击"下载文件",查看文件是否可以成功下载. 二.案例分析:struts2文件下载只需简单配置即可. a)先在下载页面(do ...

  2. struts2文件下载及 param name=inputNameinputStream/param的理解

    struts.xml文件配置: [html] view plaincopy <span style="font-size:16px;"><?xml version ...

  3. struts2文件下载出现Can not find a java.io.InputStream with the name的错误

    今天在用struts2就行文件下载时出现如下错误: Servlet.service() for servlet default threw exception java.lang.IllegalArg ...

  4. java struts2 文件下载,Struts2文件下载

    一个简单的利用struts2做文件下载的demo-- 首先配好struts: web.xml xmlns="http://java.sun.com/xml/ns/j2ee" xml ...

  5. struts2文件下载

    <!-- 文件下载 --><action name="download" class="cn.action.demo2.DownloadAction&q ...

  6. linux struts2 乱码,遇到的Struts2文件下载乱码问题

    今天用struts2写文件的下载,出现了文件名为中文时有乱码的问题.参考了很多网上和书上的方法但是不奏效.以下是我的解决方法,虽然很简单直白,但是解决问题了,供大家参考. public String ...

  7. Struts2学习笔记(十七) 文件下载(File Download)

    前面我们刚刚学完文件上传,那么我们就接着来看和文件上传相对应的文件下载吧.对于文件上传而言,文件下载实现起来要简单的多.通常我们可以直接将一个超链接的地址指向我们想要给用户下载的资源即可.但是如果这些 ...

  8. Struts2 的stream result用法

    2019独角兽企业重金招聘Python工程师标准>>> <action name="download" class="com.unmi.actio ...

  9. 【struts2+hibernate+spring项目实战】数据报表jxl及生成excel(ssh项目实战)

    一.数据报表jxl jxl是一款java读写office--Excel文件的工具.通过java程序进行Excel文件的读写操作. 操作Excel首先应该明确操作过程中java针对Excel文件的对象分 ...

最新文章

  1. python hist函数_Python主要数据探索函数
  2. jvm空间分配担保机制
  3. 大学计算机一级考试内容和范围,大学计算机一级考试.doc
  4. C++ override 关键字用法
  5. 域账号更改密码之后代理需要重新配置
  6. 值传递与引用传递 c# 1613535799
  7. web 错误 处理你的请求时出错_最强辅助Jmeter技术干货:JMeter中处理器的另类玩法...
  8. Shiro学习总结(1)——Apache Shiro简介
  9. jieba库统计出现词语次数
  10. 全栈语音交互方案免费开放,这次扔开源炸弹的是Rokid
  11. flutter尽然还能有这种操作!!!
  12. C++信息学奥赛一本通_2060
  13. 软件测试之接口自动化面试题汇总
  14. 使用HTML实现百度首页界面
  15. 攻防世界-Web-练习区12题解
  16. 面试官筛选简历,注重以下几点
  17. SeNet--通道注意力卷积
  18. jenkins安装github插件后还是找不到 Build when a change is pushed to GitHub
  19. 最大边缘相关多样性算法MMR的学习和实现
  20. 链路追踪jaeger

热门文章

  1. 跨链(2)跨链技术“公证人机制(Notary schemes)”
  2. C++ Primer 5th笔记(6)chapter6 函数: 调试帮助
  3. 【递推】P1028 数的计算
  4. mingw编译wxwidgets
  5. leetcode 小青蛙跳梯子
  6. 【Laravel】只保留Auth::routes()的登录,关闭Auth::routes()的注册、重置密码、验证路由
  7. 13、MySQL比较运算符
  8. 项目: 用封装的方法实现飞机大战游戏
  9. RabbitMQ消息的确认模式
  10. JS自动刷新当前页面