关于Tomcat文件下载中文名乱码现象
//获得下载文件的名称
String filename = request.getParameter(“filename”);
//解决获得中文参数的乱码
filename = new String(filename.getBytes(“ISO8859-1”),“UTF-8”);
//获得请求头的User-Agent
String agent = request.getHeader(“User-Agent”);
//根据不同的浏览器进行不同的编码
String filenameEncode = “”;
if (agent.contains(“MSIE”)) {
// IE浏览器
filenameEncode = URLEncoder.encode(filename, “utf-8”);
filenameEncode = filename.replace("+", " ");
} else if (agent.contains(“Firefox”)) {
// 火狐浏览器
BASE64Encoder base64Encoder = new BASE64Encoder();
filenameEncode= “=?utf-8?B?”
+ base64Encoder.encode(filename.getBytes(“utf-8”)) + “?=”;
} else {
// 其它浏览器
filenameEncode = URLEncoder.encode(filename, “utf-8”);
}
//要下载的这个文件的类型 -----客户端根据mime类型区分别
response.setContentType(this.getServletContext().getMimeType(filename));
//告诉客户端该文件不是直接解析,而是以附件形式打开,注意filename=
response.setHeader(“Content-Disposition”, “attachment;filename=”+filenameEncode);
//获取下载文件的绝对路径(相对于apach而言)
String path = this.getServletContext().getRealPath(“download/”+filename);
//获取该文件的输入流
InputStream is = new FileInputStream(path);
//获取输出流
ServletOutputStream out = response.getOutputStream();
//实现文件的拷贝
int len = 0;
byte[] bytes = new byte[1024];
while((len=is.read(bytes))>0) {
out.write(bytes,0,len);
}
is.close();
//out会自动关闭
关于Tomcat文件下载中文名乱码现象相关推荐
- 文件下载中文名乱码问题
最近实现一个从服务器端下载文件的功能,发现下载下来的文件只要是中文名就乱码,觉得这应该是个编码问题,比较容易解决,结果试了好几种方法都不行,后来google了一个老外的帖子给解决了.据他测试在(IE8 ...
- Android 文件下载中文名乱码的解决办法
Android用Java实现下载如果下载路径的文件名是中文,会出现乱码.new URL(String filepath),filepath需要是一个字符串,如果出现中文,不会默认为字符串,编码方式不同 ...
- 如何启动 与配置tomcat 服务端,修改startup.bat乱码现象
1.先去tomcat官网下载tomcat包 Apache Tomcat® - Apache Tomcat 8 Software Downloads 2.下载完成之后解压 3.双击点进去,找到bin目录 ...
- java 文件名乱码_详解关于java文件下载文件名乱码问题解决方案
JAVA文件下载时乱码有两种情况: 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 response.setContentType(" ...
- Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决
2019独角兽企业重金招聘Python工程师标准>>> Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇[zz] 关键字:Struts H ...
- Tomcat日志中文乱码问题解决
在配置文件 /usr/local/tomcat/bin/catalina.sh 大概在230多行左右添加绿框内容,注释红框内容,重启Tomcat即可解决乱码问题 Tomcat服务器记录日志(Logge ...
- 关于java文件下载文件名乱码问题解决方案
关于java文件下载文件名乱码问题解决方案 参考文章: (1)关于java文件下载文件名乱码问题解决方案 (2)https://www.cnblogs.com/zhaoyan001/p/9012750 ...
- java tomcat日志中文乱码问题解决
在配置文件 /usr/local/tomcat/bin/catalina.sh 大概在230多行左右添加绿框内容,注释红框内容,重启Tomcat即可解决乱码问题 Tomcat服务器记录日志(Logge ...
- springMVC+ajaxFileUpload中文名乱码的问题
最近在做一个文件上传的功能,使用的是ajaxFileUpload作为前台上传功能,实际使用中发现问题有2个 1.file组件的change事件只能触发一次. 2.上传的中文名乱码 关于1:file组件 ...
最新文章
- mysql让数据库的数据按照id来排序方法
- c# try-finally有什么用
- 对于ssh和hadoop联系讲解和ssh的基本内容
- 一个女程序员的男友需求说明书(转)
- MySQL高级 - 锁 - MySQL对锁的支持
- 通过Small Basic把儿子/女儿带入编程的世界
- 静态代码块、非静态代码块、构造函数执行顺序
- indy idhttpserver有关下载的两个问题
- greenplum数据导入到mysql,将数据从DB2数据库传输到greenplum数据库
- SkeyePlayer RTSP/RTMP低延迟播放器源码解析系列之效率优化方案
- LINUX命令 VS DOS命令
- 进程管理——PV操作
- C#打开文件夹加载图片
- 傻子也能看懂的弗洛伊德算法(转)
- 湎计算机网络通讯设备有哪些,2018年4月自考计算机网络原理04741试题及答案
- c语言烟花发射原理,烟花发射原理
- 猫爪杯爆红背后的套路,你上勾了吗?
- 笔记(十):redis集群
- 如何成为资源整合高手
- 【特色小镇】智慧小镇:小镇建设总体规划方案
热门文章
- JS中的兼容问题总结
- Bourbon: 让你的sass更简洁
- 创建vue项目(四)路由相关知识、路由守卫、插槽、打包小细节
- luogu P1880 [NOI1995]石子合并
- c语言 static的用法
- oracle安装中桌面模式与服务器模式的去别
- Windows/Linux安装python2.7,pycharm和pandas——《利用Python进行数据分析》
- C++中 list与vector的区别
- 【转】漫谈ANN(2):BP神经网络
- C#使用Dotfuscator混淆代码以及加密