<!-- 文件下载 --><action name="download" class="cn.action.demo2.DownloadAction"><!-- 返回 流结果 --><result type="stream"><!-- inputName 用于指定 返回输入流的方法名 默认值  inputStream --><!-- targetFile 需要在Action 中提供 getTargetFile方法,返回值必须InputStream --><param name="inputName">targetFile</param><!-- 配置ContentType --><!-- ${contentType}从Action中 getContentType 获得文件类型 --><param name="contentType">${contentType}</param><!-- 设置响应数据 以附件形式打开  --><param name="contentDisposition">attachment;filename=${filename}</param></result></action>

public class DownloadAction extends ActionSupport{// 接收文件名private String filename;@Overridepublic String execute() throws Exception {// 解决请求参数中文件名get乱码filename = new String(filename.getBytes("ISO-8859-1"),"utf-8");return SUCCESS;}public String getFilename() throws IOException {// 对文件名 进行编码,用于附件下载String agent = ServletActionContext.getRequest().getHeader("user-agent");System.out.println(agent);if(agent.contains("Firefox")){// 火狐浏览器 Base64编码return "=?UTF-8?B?"+new BASE64Encoder().encode(filename.getBytes("utf-8"))+"?=";}else{// IE及其它浏览器--- URL编码return URLEncoder.encode(filename, "utf-8");}}public void setFilename(String filename) {this.filename = filename;}// getTargetFile方法名 因为配置 <param name="inputName">targetFile</param>public InputStream getTargetFile() throws IOException{// 获得download 目录 绝对路径ServletContext servletContext = ServletActionContext.getServletContext();String downloadDir = servletContext.getRealPath("/download");return new BufferedInputStream(new FileInputStream(new File(downloadDir, filename)));}// <param name="contentType">${contentType}</param>public String getContentType(){// 文件类型 由文件名动态获得ServletContext servletContext = ServletActionContext.getServletContext();// 查找tomcat/conf/web.xml return servletContext.getMimeType(filename);}}

转载于:https://www.cnblogs.com/52hadoop/p/5642017.html

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 文件下载

    配置xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC& ...

  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. java拷贝压缩文件_Android java, 快速文件拷贝,文件压缩,获得系统时间 | 学步园...
  2. python中怎么创建配置文件_在Python中创建游戏配置/选项(config.cfg)文件
  3. 亲历者说 | 完整记录一年多考拉海购的云原生之路
  4. 【通知】深度学习之人脸图像算法重印,欢迎读者支持!
  5. 选择Asp for javascript,非.net。
  6. openstack安装rabbitmq-server消息队列时出现错误
  7. [蓝桥杯][算法提高VIP]金陵十三钗(状压dp记忆化搜索)
  8. 字符大小端aix linux,long, unsigned long不是跨平台的(慎用)
  9. Hadoop安装目录
  10. c语言输出指定年份中所有的星期六,用C语言编写程序打印任意年份的日历
  11. 六自由度机械臂SolidWorks模型转化成urdf文件,添加简单gazebo属性并修改为xacro
  12. PM2.5浓度数据集(1998-2016年)
  13. 费马小定理的两个证明
  14. 特征工程系列:数据清洗
  15. cpuz测试分数天梯图_CPU天梯图 Cinebench R15(多核)跑分
  16. 各个框架原理总结归纳
  17. OpenCV基础(4)使用OpenCV裁剪图像
  18. selenium实现自动播放音乐
  19. DirectShow入门
  20. 从 0-1 构建指标体系

热门文章

  1. 单曲循环 翻译_“单曲循环”用英语怎么说?
  2. python如何进行web开发_如何用Python做Web开发
  3. 修改主从服务器,搭建BIND主从服务器
  4. c语言中open函数r,C语言中open函数
  5. 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客
  6. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
  7. dbeaver导出excel文件_vue将数据导出为excel文件就是如此简单
  8. tplink无线受限 服务器无响应,tplink怎么设置密码(tplink服务器无响应)
  9. 2029年计算机考试题目,计算机二级题集
  10. oracle数据库连接不稳定,Oracle数据库自连接查询的缺点及解决方法