response.setContentType("application/x-msdownload"); byte[] bytes = this.exportByteArray(setInfo, operator, fileName,isAuto); response.setContentLength(bytes.length); //controller直接获取到就直接用request,没有的话通过此方法获取 HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes() )).getRequest(); String agent = request.getHeader("User-Agent").toUpperCase(); //获得浏览器信息并转换为大写 if (agent.indexOf("MSIE") > 0 || (agent.indexOf("GECKO") > 0 && agent.indexOf("RV:11") > 0)) { //IE浏览器和Edge浏览器 fileName = URLEncoder.encode(fileName, "UTF-8"); } else { //其他浏览器 fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); } response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); response.getOutputStream().write(bytes);
记录下ie和google(其他)浏览器的导出文件名乱码统一解决方式
最新推荐文章于 2021-12-14 01:34:57 发布