Struts2 文件下载 (解决了中文文件名)

Struts Action 代码

package org.cxg.action; import java.io.InputStream; import java.io.UnsupportedEncodingException; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class DownLoadAction extends ActionSupport{ //下载文件原始存放路径 private final static String DOWNLOADFILEPATH="/"; //下载文件名 private String fileName ; public InputStream getInputStream() throws Exception{ return ServletActionContext.getServletContext().getResourceAsStream(DOWNLOADFILEPATH + fileName); } @Override public String execute() throws Exception { fileName = "小胖子.jpg"; return SUCCESS; } /** 提供转换编码后的供下载用的文件名 */ public String getDownloadFileName() { String downFileName = fileName; try { downFileName = new String(downFileName.getBytes(), "ISO8859-1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return downFileName; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } }


Struts.xml配置

<package name="default" namespace="/" extends="struts-default"> <action name="index" class="org.cxg.action.UploadAction" method="upload"> <result type="redirectAction"></result> </action> <action name="download" class="org.cxg.action.DownLoadAction" method="execute"> <result name="success" type="stream"> <param name="inputName">inputStream</param> <param name="contentType">image/jpeg;charset=ISO8859-1</param> <param name="contentDisposition">attachment;filename=${downloadFileName}</param> <param name="bufferSize">4096</param> </result> </action> </package>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值