ie浏览器下载文件时文件名乱码
做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下:
@RequestMapping(value = "fileDownload", method = { RequestMethod.GET })
@ResponseBody
public void fileDownload(String filepath,HttpServletResponse response,HttpServletRequest request) {
File file = new File(filepath);
String filename;
try {
int n=filepath.lastIndexOf("/");
int m = filepath.lastIndexOf("\\");
int nn = n>m?n:m;
filename = filepath.substring(nn+1);
// 获得请求头中的User-Agent
String agent = request.getHeader("User-Agent").toUpperCase();
//解决ie下载时文件名乱码的问题
if (agent.contains("MSIE") || agent.contains("TRIDENT") || agent.contains("EDGE")) { //判断是否是ie浏览器
filename = URLEncoder.encode(filename, "utf-8");
}else{
filename = new String(filename.getBytes(), "iso-8859-1");
}
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename="+filename);
FileInputStream fileInputStream = new FileInputStream(file);
byte[] by = new byte[fileInputStream.available()];
fileInputStream.read(by);
OutputStream outputStream = response.getOutputStream();
outputStream.write(by);
fileInputStream.close();
outputStream.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
ie浏览器下载文件时文件名乱码的更多相关文章
- C#中解决Response.AddHeader("Content-Disposition", "attachment; filename=" + filename)下载文件时文件名乱码的问题
问题:下载文件时文件名乱码怎么解决? 在C#写后台代码过程中,经常遇到下载文件出现文件名乱码的问题,在网上找了很多方法,总是存在浏览器不兼容的问题,当IE浏览器不乱码时,火狐浏览器就会乱码,后来经过反 ...
- IE浏览器下载文件中文文件名乱码问题解决
处理过程 根据IE的F12中的log提示,是因为http头信息中的编码替换了html文件中的编码.我最初的思路是设置Tomcat默认编码,但是我发现我已经在Server.xml中设置过,想到这里我想到 ...
- Servlet:浏览器下载文件时文件名为乱码问题
1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcep ...
- Java 使用IE浏览器下载文件,文件名乱码问题
使用Servlet实现文件下载功能时,使用IE下载出现文件名乱码; 网上常见的解决办法是通过"user-agen"来判断浏览器: if (req.getHeader("u ...
- Java使用IE浏览器下载文件,文件名乱码问题
String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.contains(& ...
- java下载文件时文件名出现乱码的解决办法
转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249 java下载文件时文件名出现乱码的解决办法: String userAgent ...
- Firefox下载文件时中文名乱码问题
为了形象化,先看几张不同浏览器下下载文件时的效果图: 1:Firefox 36.0.1 2:IE8 3:Chrome 40.0.2214.93 m 4:360 7.1.1.322 很明显在Firefo ...
- Java 解决IE浏览器下载文件,文件名出现乱码问题
/** * 区分ie 和其他浏览器的下载文件乱码问题 * @param request * @param fileName * @return */ public String getFileName ...
- 解决用ASP.NET下载文件时,文件名为乱码的问题
关键就一句: string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Enc ...
随机推荐
- js原生获取css属性
原文参考http://blog.csdn.net/lzding/article/details/46317777 1.写在dom上的属性,内联样式 <div id="box" ...
- Tesseract-OCR-03-图片文字识别
Tesseract-OCR-03-图片文字识别 本篇介绍使用 Tesseract-OCR 做图片文字识别,识别手写文字的时候,正确率能达到 90%,当训练后正确率是极高的.这里介绍的图片文字识别,可以 ...
- 【Python】卸载完Python3 之后 Python2 无法打开IDLE
安装官方的Python带Idle但是却无法打开,百度谷歌了几种解决方法,加上自己的实际境况予以解决. 我的python是直接安装在C盘下的. 1.首先是设置环境变量: Path=C:\Python27 ...
- centos 开机执行的命令
centos开机执行的命令-------待验证,因为有可能涉及到root问题,没想明白怎么输入密码 1.增加rc.local可执行权限 chmod +x /etc/rc.d/rc.local 2.在里 ...
- SSIS ->> 管理和维护SSISDB
Comming soon!!! 参考文献: Setup and Performance Issues with the Integration Services (SSIS) 2012 Catalog ...
- Studying TCP's Congestion Window using NS
Studying TCP's Congestion Window using NS How to obtain TCP's CWND value The most important value th ...
- calculate fraction by oracle
QUESTION:When you meet calculate fraction in oracle SOLUTION: 1.Check out their values respectively. ...
- Task执行内幕与结果处理解密
本课主题 Task执行内幕与结果处理解密 引言 这一章我们主要关心的是 Task 是怎样被计算的以及结果是怎么被处理的 了解 Task 是怎样被计算的以及结果是怎么被处理的 Task 执行原理流程图 ...
- vmware虚拟机添加新硬盘
1 vmware中添加硬盘 2 重启虚拟机后,fdisk -l 查看已经挂在好的硬盘,比如/dev/sdb3 mkfs.ext3 /dev/sdb4 挂在: mount /de ...
- Json 和 Jsonlib 的使用
什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解 ...