struts2使用action方式实现文件下载(支持中文文件名)
来源:互联网 发布:ifunbox中文版 mac 编辑:程序博客网 时间:2024/06/01 11:01
转载自:http://blog.csdn.net/lisq037/article/details/9014563
目录(?)[+]
- 【1】支持中文名称文件(源文件中文名称、下载另存为为中文名称)
- 【2】加入session判断,还可进行权限控制
action类:
- package com.fsti.ssh.action;
- import java.io.InputStream;
- import java.io.UnsupportedEncodingException;
- import org.apache.log4j.Logger;
- import org.apache.struts2.ServletActionContext;
- /**
- * 文件下载 【1】支持中文文件名称 【2】加入session判断,还可进行权限控制
- *
- * @author deniro
- */
- public class FileDownloadAction extends AuthorityAction {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- static Logger log = Logger.getLogger(FileDownloadAction.class);
- /**
- * 被下载的资源路径
- */
- private String inputPath;
- public void setInputPath(String inputPath) {
- this.inputPath = inputPath;
- }
- /**
- * 文件名
- */
- private String fileName;
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- /**
- * 获取下载显示的文件名称
- *
- * @return
- */
- public String getDownloadFileName() {
- String downFileName = fileName;
- try {
- downFileName = new String(downFileName.getBytes(), "ISO8859-1");
- } catch (UnsupportedEncodingException e) {
- log.error("获取下载显示的文件名称",e);
- }
- return downFileName;
- }
- /**
- * 配置stream类型结果时,需指定inputName;inputName为方法名去掉get前缀,并且首字母小写的字符串;
- * 比如此例中的inputName为 targetFile
- *
- * @return
- */
- public InputStream getTargetFile() {
- InputStream resourceAsStream = ServletActionContext.getServletContext().getResourceAsStream(
- inputPath);
- log.info("resourceAsStream:"+resourceAsStream);//若为NULL,则说明未取到文件,请确认文件路径是否正确。
- return resourceAsStream;
- }
- }
struts配置文件:
- <!-- 指定struts2 DTD信息 -->
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
- "http://struts.apache.org/dtds/struts-2.1.7.dtd">
- <struts>
- <package name="download" extends="struts-default">
- <action name="download" class="com.fsti.ssh.action.FileDownloadAction">
- <!-- 被下载的资源路径 -->
- <param name="inputPath">\WEB-INF\download\灯塔.jpg</param>
- <!-- 下载显示的文件名称 -->
- <param name="fileName">灯塔.jpg</param>
- <result name="success" type="stream">
- <!-- 指定下载文件的文件类型 -->
- <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
- <!-- 指定stream方法名称 -->
- <param name="inputName">targetFile</param>
- <!-- 文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,默认为直接显示文件 -->
- <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
- <!-- 指定下载文件的缓冲大小 -->
- <param name="bufferSize">4096</param>
- </result>
- </action>
- </package>
- </struts>
jsp页面:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>文件下载(支持中文文件名称)</title>
- </head>
- <body>
- <p><span><a href="download.action" target="_blank">下载</a></span></p>
- <div class="divider"></div>
- <ul>
- <li>【1】支持中文名称文件(源文件中文名称、下载另存为为中文名称)</li>
- <li>【2】加入session判断,还可进行权限控制</li>
- </ul>
- </body>
- </html>
0 0
- struts2使用action方式实现文件下载(支持中文文件名)
- struts2使用action方式实现文件下载(支持中文文件名)
- struts2使用action方式实现文件下载(支持中文文件名)
- struts2 实现文件上传下载 (下载支持中文文件名)代码
- struts2 实现中文文件名的文件下载
- struts2文件下载功能实现(文件名中文转码)
- Struts2用action方式实现文件下载
- Struts2 多个文件上传和下载(支持中文文件名)
- struts2 Annotation 实现文件下载功能 文件名中文乱码问题
- Struts2 文件下载 (解决了中文文件名)
- Struts2 文件下载中文文件名乱码问题
- 解决Struts2文件下载文件名中文乱码
- struts2文件下载及文件名中文问题
- Struts2实现文件下载(使用注解的方式)
- struts2 下载文件,下载弹出框,文件名中文乱码
- struts2注解方式文件下载,文件名有空格解决方式。
- tomcat支持中文文件名下载
- tomcat支持中文文件名下载
- The 10 Best Open Source Projects You Should Be Volunteering To Help With
- android横向滑动选择的view
- iOS中socket的使用
- 笔记
- Google 2015 APAC Round A Problem C - Addition
- struts2使用action方式实现文件下载(支持中文文件名)
- TQ2440 学习笔记—— 10、嵌入式编程基础知识【arm-linux-ld 选项】
- 项目做完了,总结一下
- 好像原来是判断如果是新增的则直接插入如果是修改的,把所有的都修改
- 决策树模型组合之(在线)随机森林与GBDT
- C++ stringstream的用法
- Myeclipse10的优化设置
- hdu3065 病毒侵袭持续中(AC自动机,统计每个字符串出现的次数)
- Java中的IO流,入门