IE11兼容问题解决

迈不过友情╰ 2022-06-01 01:21 547阅读 0赞
  1. 微软向兼容性靠拢,使得IE11浏览器标识变成Mozilla,导致处理下载文件时出现乱码问题,但不无解决方法,
  2. 查看请求发现IE11的标识 rv:11,这里区分了IE11所以
  3. StringUtils.contains(userAgent, "rv:11")即可解决问题
  4. ResponseUtill.download(request, response, "人员管理基本信息.xls", "multipart/form-data");
  5. /** * 文件下载. * * <br>��param: request * <br>��param: response * <br>��param: name 文件名. * <br>��param: contentType 文件类型. * @author chengyuebin */ public static void download(HttpServletRequest request,
  6. HttpServletResponse response,
  7. String name,
  8. String contentType) throws Exception {
  9. // 最终返回给浏览器的文件名.
  10. String finalFileName = null;
  11. final String userAgent = request.getHeader("USER-AGENT");
  12. // IE浏览器.
  13. if(StringUtils.contains(userAgent, "MSIE") || StringUtils.contains(userAgent, "rv:11")) {
  14. finalFileName = URLEncoder.encode(name,"UTF8");
  15. }
  16. // Google,火狐浏览器
  17. else if(StringUtils.contains(userAgent, "Mozilla")) {
  18. finalFileName = new String(name.getBytes(), "ISO8859-1");
  19. }
  20. // 其他浏览器.
  21. else{
  22. finalFileName = URLEncoder.encode(name,"UTF8");
  23. }
  24. // 告诉浏览器用什么软件可以打开此文件.
  25. response.setHeader("content-Type", contentType);
  26. // 下载文件的默认名称.
  27. response.setHeader("Content-Disposition", "attachment;filename=" + finalFileName);
  28. // 编码.
  29. response.setCharacterEncoding("UTF-8");
  30. Resource resource = new ClassPathResource(name);
  31. IOUtils.copy(resource.getInputStream(), response.getOutputStream());
  32. response.flushBuffer();
  33. }
  34. }

发表评论

表情:
评论列表 (有 0 条评论,547人围观)

还没有评论,来说两句吧...

相关阅读

    相关 IE11的CSS兼容问题

    最近测试给了我一大堆BUG,一瞅发现全是IE11的。吐槽一下这个浏览器真的比较特立独行。很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的

    相关 IE11兼容console.info

    问题描述: 在代码中使用了console.info(),打开控制台一切正常,关闭控制台代码不执行 原因: console.info()是需要打开一次控制台才能

    相关 IE兼容问题解决

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <

    相关 IE11兼容

    最近在做一个项目的时候,发现如下IE11兼容性问题: (1)js中不支持使用模板字符串(反引号); (2)new ActiveXObject只能在IE下使用,谷歌浏览器下不