struts2下载中文名文件问题

action:publicclassDownloadActionextendsActionSupport{privateStringfileName;publicStri... action:
public class DownloadAction extends ActionSupport {
private String fileName;

public String getDownloadFileName() {
String fileName=ServletActionContext.getRequest().getParameter("fileName");
String downFileName = fileName;
try {
downFileName = new String(downFileName.getBytes("ISO-8859-1"), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return downFileName;
}

public InputStream getInputStream() {
String name=this.getDownloadFileName();
String realPath="/upload/"+name;
InputStream in=ServletActionContext.getServletContext().getResourceAsStream(realPath);
System.out.println(in);
if(null==in){
System.out.println("Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the <param name=\"inputName\"> tag specified for this action.检查action中文件下载路径是否正确.");
}
return ServletActionContext.getServletContext().getResourceAsStream(realPath);
}
@Override
public String execute() throws Exception {
return "SUCCESS";
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}

struts:<action name="download" class="com.file.action.DownloadAction">
<result name="SUCCESS" type="stream">
<param name="contentType">application/octet-stream;
</param>
<param name="contentDisposition">
attachment;filename="${downFileName}"
</param>
<param name="inputName">inputStream</param>
<param name="bufferSize">4096</param>
</result>
</action>
下载时弹出框显示文件名是download.action,要怎么才能显示中文原名呢
展开
 我来答
匿名用户
2013-12-10
展开全部
downFileName = new String(downFileName.getBytes("ISO-8859-1"), "UTF-8");

系统是使用ISO-8859-1编码的?那中文肯定筹码了。

统一使用GBK、或UTF-8编码
更多追问追答
追问
系统页面用的UTF-8,但是这里不知道怎么改啊,总是不对啊
追答
那还由iso-8859-1转成UTF8,是UTF8就不用转了
百度网友8f73b43
推荐于2016-12-01
知道答主
回答量:16
采纳率:0%
帮助的人:7万
展开全部
public String getDownloadFileName() {
String downFileName=URLEncoder.encode(fileName,"utf-8")
return downFileName;
}
追问
谢谢,可是还是没用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式