//获得下载文件的名称
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. android绘制心形_Android自定义View系列(一)——打造一个爱心进度条
  2. 编程入门python语言是多大孩子学的-不学点编程,将来怎么给孩子辅导作业―Python新手入门教程...
  3. 互相关延时估计加权函数性能分析
  4. [Unity] Perfab 和 Scene 中显示的物体局部坐标系的原点不是实际原点
  5. 一个老工程师的肺腑之言!!!
  6. jQuery源码分析笔记-构造jQuery对象(三)
  7. python菜鸟教程100例-Python 练习实例1
  8. 基于PHPExcel的常用方法总结
  9. KDE——年度最佳桌面环境
  10. linux脚本怎么发送到桌面,如何在Linux上使用Zenity创建简单的图形Shell脚本
  11. 【带权并查集题目汇总】
  12. Nature综述|整合组学分析护航健康,推动精准医学时代的到来!
  13. 有趣的JS加密(一)AA加密颜文字加密
  14. 考软件测试自学钢琴,新手学钢琴用什么app-自学钢琴比较好的软件推荐 - Iefans...
  15. 剑桥A1-C2单词表-01
  16. throw er; // Unhandled ‘error’ event
  17. 一段有趣的代码,喂仓鼠
  18. 阳离子铱配合物(Ir1+)|(Ir2-)|Ir(dmecf3ppz)2bpy+(PF6)-齐岳合成
  19. 7-3 求100以内的素数
  20. vpr文件转换flac_vpr文件格式怎么转换,划重点了

热门文章

  1. vue中通过js控制页面样式方法
  2. CSS3新增的伪类选择器
  3. 百度前端学院-基础学院-第四课
  4. 一步步构建大型网站架构 [转]
  5. MySQL(介绍,安装,密码操作,权限表)
  6. 在Windows运行Python程序
  7. tornado-简介和原理
  8. python实例31[解析buildlog]
  9. python configparser 注释_使用configpar添加注释
  10. 服务器主板北桥芯片组有哪些,主板芯片组_目前的主板芯片组都有哪些?