下载文件chrome和火狐文件名乱码

转载 2015年11月19日 14:43:28
public static boolean isMSIE(){
return  request.getHeader( "USER-AGENT" ).toLowerCase().indexOf( "msie" ) >  0  ?  true  :  false ;
}



public void downLoadFile(InputStream ins, String fileName){
//1.判断ie
boolean isMSIE = isMSIE();
//2.文件名处理
if (isMSIE){// IE
fileName = URLEncoder.encode(fileName, "utf-8");
fileName = fileName.replace("+", "%20");// 处理空格变“+”的问题
} else {// FF
fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1");
}
//3.准备响应头
//这里filename用“"”英文的双引号扣起来,可以防止firefox空格节点文件名的问题
response.setHeader("content-disposition", "attachment;filename=\"" + fileName + "\"");
response.setContentType("application/octet-stream");
//4.下载,注意IO异常的处理
os = response.getOutputStream();
byte [] cache = new btye[1024];
int length = ins.read(cache);
while (length != -1){
os.wirt(cache,0,length);
length = ins.read(cache);
}

}




chrome  火狐

  OutputStream os = null;
        BufferedOutputStream bos = null;
        try {
            os = response.getOutputStream();
            bos = new BufferedOutputStream(os);
            workbook.write(bos);
            // 对文件名进行编码处理中文问题
            String fileNameEnc = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
            response.reset();
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/x-msdownload");// 不同类型的文件对应不同的MIME类型
            // inline在浏览器中直接显示,不提示用户下载
            // attachment弹出对话框,提示用户进行下载保存本地
            // 默认为inline方式
            response.setHeader("Content-Disposition", "attachment; filename=" + fileNameEnc);
            return true;
        } catch (IOException e) {
            LOG.error(FormatService.logFormat("downloadExcelFile fail."), e);
        } finally {
            // 特别重要
            // 1. 进行关闭是为了释放资源
            // 2. 进行关闭会自动执行flush方法清空缓冲区内容
            if (null != bos) {
                bos.close();
                bos = null;
            }
            if (null != os) {
                os.close();
                os = null;
            }
        }

FireFox下载文件时文件名乱码的解决办法

WEB开发时,上传下载功能太常见了,而困扰开发人员的字符集,以及编码问题一起比较纠结,小弟最近也碰到下载时乱码的问题,乱码的情况,IE下点下载超链接时能够正常为显示(我是比较喜欢IE的),而在Fire...
  • wdq892157341
  • wdq892157341
  • 2014年12月30日 10:42
  • 421

下载文件,ie,chrome,firfox下处理文件名显示乱码

/** * * @Title: processFileName * * @Description: ie,chrome,firfox下处理文件名显示...
  • lanqibaoer
  • lanqibaoer
  • 2016年08月29日 10:01
  • 445

Firefox 火狐 浏览器下载文件文件名中文乱码解决

Firefox 火狐 浏览器下载文件文件名中文乱码解决
  • sxdfx
  • sxdfx
  • 2017年06月13日 11:14
  • 1152

FireFox浏览器导出文件名乱码,原因剖析与解决

今天在使用poi导出excle表格过程中,QA提出firefox浏览器导出时,文件名乱码,自身分析结合度娘,大致了解原因如下:文件名存在http header中的filename,Content-Di...
  • bylhjcsmmd
  • bylhjcsmmd
  • 2017年10月19日 14:45
  • 247

解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码。也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很...
  • ZSMJ_2011
  • ZSMJ_2011
  • 2015年07月26日 20:43
  • 12620

解决Firefox下载文件名乱码

我用C#开发了一个小型的文件上传下载站点,
  • b6_g9
  • b6_g9
  • 2014年10月10日 21:48
  • 2191

火狐浏览器下载文件名乱码

做项目时,一般都是用Google浏览器做测试的,后期完成后,要用多个浏览器做测试时,发现了个问题,用火狐浏览器下载报表时,文件名是%E5%B7%A5%E4%BD%9C%E4%BA%A7%E9成UTF-...
  • FengYe_YuLu
  • FengYe_YuLu
  • 2016年03月23日 10:34
  • 1230

解决火狐浏览器下载文件文件名乱码的问题

if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {//IE内核 fileName = URLEncoder.enco...
  • jyizhao
  • jyizhao
  • 2016年09月09日 15:34
  • 670

解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码。也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很...
  • a807557328
  • a807557328
  • 2017年07月25日 16:48
  • 275

解决各大浏览器下载文件,文件名乱码的问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码。也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很...
  • fengchao2016
  • fengchao2016
  • 2017年02月15日 09:43
  • 2654
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:下载文件chrome和火狐文件名乱码
举报原因:
原因补充:

(最多只允许输入30个字)