下载文件名乱码问题

原创
2016/09/05 18:25
阅读数 14

如何保证火狐 ie  谷歌等浏览器 下载时文件名不出现乱码

String agent = (String)getRequest().getHeader("USER-AGENT");    
            logger.info("USER-AGENT:{}",agent);
            //服务器端如何识别客户端浏览器是IE11的情况,IE7-10都通过USER-AGENT中的MSIE判断为IE浏览器  
            if(agent != null && agent.indexOf("MSIE") == -1  &&  agent.indexOf("rv:11") == -1) {// FF        MSIE 指的是ie7 -ie10  后面指的是ie11
                logger.info("================== 使用Base64转码====================================");
               // String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";  
                String enableFileName = "=?UTF-8?B?" + (new String(Base64.encode(file.getName().getBytes("UTF-8")))) + "?=";    
                response.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);    
            } else { // IE      
                logger.info("================== 使用URLEncoder转码====================================");
                response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8"));  
            }  

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部