//获得下载文件的名称
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文件下载中文名乱码现象相关推荐

  1. 文件下载中文名乱码问题

    最近实现一个从服务器端下载文件的功能,发现下载下来的文件只要是中文名就乱码,觉得这应该是个编码问题,比较容易解决,结果试了好几种方法都不行,后来google了一个老外的帖子给解决了.据他测试在(IE8 ...

  2. Android 文件下载中文名乱码的解决办法

    Android用Java实现下载如果下载路径的文件名是中文,会出现乱码.new URL(String filepath),filepath需要是一个字符串,如果出现中文,不会默认为字符串,编码方式不同 ...

  3. 如何启动 与配置tomcat 服务端,修改startup.bat乱码现象

    1.先去tomcat官网下载tomcat包 Apache Tomcat® - Apache Tomcat 8 Software Downloads 2.下载完成之后解压 3.双击点进去,找到bin目录 ...

  4. java 文件名乱码_详解关于java文件下载文件名乱码问题解决方案

    JAVA文件下载时乱码有两种情况: 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 response.setContentType(" ...

  5. Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决

    2019独角兽企业重金招聘Python工程师标准>>> Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇[zz] 关键字:Struts H ...

  6. Tomcat日志中文乱码问题解决

    在配置文件 /usr/local/tomcat/bin/catalina.sh 大概在230多行左右添加绿框内容,注释红框内容,重启Tomcat即可解决乱码问题 Tomcat服务器记录日志(Logge ...

  7. 关于java文件下载文件名乱码问题解决方案

    关于java文件下载文件名乱码问题解决方案 参考文章: (1)关于java文件下载文件名乱码问题解决方案 (2)https://www.cnblogs.com/zhaoyan001/p/9012750 ...

  8. java tomcat日志中文乱码问题解决

    在配置文件 /usr/local/tomcat/bin/catalina.sh 大概在230多行左右添加绿框内容,注释红框内容,重启Tomcat即可解决乱码问题 Tomcat服务器记录日志(Logge ...

  9. springMVC+ajaxFileUpload中文名乱码的问题

    最近在做一个文件上传的功能,使用的是ajaxFileUpload作为前台上传功能,实际使用中发现问题有2个 1.file组件的change事件只能触发一次. 2.上传的中文名乱码 关于1:file组件 ...

最新文章

  1. mysql让数据库的数据按照id来排序方法
  2. c# try-finally有什么用
  3. 对于ssh和hadoop联系讲解和ssh的基本内容
  4. 一个女程序员的男友需求说明书(转)
  5. MySQL高级 - 锁 - MySQL对锁的支持
  6. 通过Small Basic把儿子/女儿带入编程的世界
  7. 静态代码块、非静态代码块、构造函数执行顺序
  8. indy idhttpserver有关下载的两个问题
  9. greenplum数据导入到mysql,将数据从DB2数据库传输到greenplum数据库
  10. SkeyePlayer RTSP/RTMP低延迟播放器源码解析系列之效率优化方案
  11. LINUX命令 VS DOS命令
  12. 进程管理——PV操作
  13. C#打开文件夹加载图片
  14. 傻子也能看懂的弗洛伊德算法(转)
  15. 湎计算机网络通讯设备有哪些,2018年4月自考计算机网络原理04741试题及答案
  16. c语言烟花发射原理,烟花发射原理
  17. 猫爪杯爆红背后的套路,你上勾了吗?
  18. 笔记(十):redis集群
  19. 如何成为资源整合高手
  20. 【特色小镇】智慧小镇:小镇建设总体规划方案

热门文章

  1. JS中的兼容问题总结
  2. Bourbon: 让你的sass更简洁
  3. 创建vue项目(四)路由相关知识、路由守卫、插槽、打包小细节
  4. luogu P1880 [NOI1995]石子合并
  5. c语言 static的用法
  6. oracle安装中桌面模式与服务器模式的去别
  7. Windows/Linux安装python2.7,pycharm和pandas——《利用Python进行数据分析》
  8. C++中 list与vector的区别
  9. 【转】漫谈ANN(2):BP神经网络
  10. C#使用Dotfuscator混淆代码以及加密