博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2文件下载及文件名中文问题
阅读量:5103 次
发布时间:2019-06-13

本文共 1201 字,大约阅读时间需要 4 分钟。

1. struts2配置文件:

testStream
application/octet-stream;charset=GBK
attachment;filename="${fileName}"
4096

说明:

result标签中需要定义 type=”stream” 。

在Action中只需要定义 testStream 的get方法即可,即getTestStream(),不需要定义private InputStream testStream这样的类私有变量。

2.Action中:

@Controller("downloadAction")@Scope("prototype")public class DataDownloadAction extends ActionSupport {
//用户存储下载时显示的文件名 private String fileName; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public InputStream getTestStream() throws Exception { String filename = "中文书名测试.pdf"; String filepath = "E:\\book\\"+filename; File file = new File(filepath); InputStream inStream = null; inStream = new FileInputStream(file); //需要转换才可以显示中文文件名 this.fileName = new String(filename.getBytes(), "ISO8859-1"); return inStream; }}

说明:

如果文件名为中文,需要在给fileName定义时进行字符集转换:this.fileName = new String(filename.getBytes(), “ISO8859-1”);

此外,tomcat的字符集需要设置为UTF-8,具体方法为编辑conf/server.xml中添加URIEncoding=”UTF-8”

转载于:https://www.cnblogs.com/conter/p/6857814.html

你可能感兴趣的文章
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
java web 中base64传输的坑
查看>>
java 中的线程(一)
查看>>
秒杀9种排序算法(JavaScript版)
查看>>
Activiti入门 -- 环境搭建和核心API简介
查看>>