关于IE8导出POI生成的文件丢失文件名

response.addHeader("Content-Disposition", "attachment;filename=utf-8'zh_cn'" + fileName + ".xls");

在IE11和其他浏览器正常,但是IE导出之后没有文件名和文件类型,文件名就是接口名称(但是手动给导出的文件添加类型之后可正常打开且内容是对的)例如:

IE11、Chrome等浏览器导出文件为:我的Excel表格.xls

IE8导出的文件为:exportExcel

1个回答

这个问题是IE8的bug,用英文的文件名就可以,中文的不行,IE8不能识别utf-8'zh_cn这个编码。
你可以用useragent判断下,如果是ie8,将文件名中的中文用拼音或者什么代替

qq_43715251
大黑免 回复CSDN 是社会人 攒够C币 跑了商城: response.addHeader("content-disposition", "attachment;filename=" + fileName + ".xls"); 用这个是可以的,感谢老哥指点!~
9 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复大黑免: 文件名用英文,并且不要fileName.getBytes("UTF-8")编码,ie不认。另外是ie,你判断firefox干吗。你先不要判断,一律返回英文无编码。这个肯定是可以的
9 个月之前 回复
qq_43715251
大黑免 回复CSDN 是社会人 攒够C币 跑了商城: 老哥,还不是不行。。代码粘上,您有空了给掌掌眼看看,小弟感激不尽。。String browser = request.getHeader("User-Agent"); if (browser.toLowerCase().contains("firefox")) { fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); } response.addHeader("Content-Disposition", "attachment;filename*=\"" + fileName + ".xls");
9 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复大黑免: 我没有说清楚,要去掉utf-8'zh_cn'
9 个月之前 回复
qq_43715251
大黑免 感谢您的解答,不过我试了试吧fileName写死为“aaaa",导出来还是啥都没有,只有接口名。。
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问