重大改版
 鱼翔空 2013-08-27 servlet/jsp,技术总结,linux,servlet/jsp|   2 4420 
文章评分 90 次,平均分 5.0

今天通过poi导出文件的时候,发现在服务器上的时候通过ie总是乱码,刚开始不知道服务器是linux,就把服务器上的环境拿下来做测试,本地都正常,就是在服务器上的时候出问题,后来他们说服务器是linux,然后我就晓得啥问题了.

 

注意:如果文件名中有空格的话,会linux服务器部署IE访问下载的时候会把空格转成+号

  response.reset();
//中文文件名支持,在window服务器上这行代码就可以了
String encodedfileName=new String(fileName.getBytes(), "ISO8859-1");;
//获取请求request对象
HttpServletRequest request = Struts2Utils.getRequest();
//在linux服务器上 IE下载必须加上下面这段代码,window也行,
if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
            encodedfileName = URLEncoder.encode(fileName, "UTF-8");
  }
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");

response.reset();的作用

//如果有换行,对于文本文件没有什么问题,但是对于其它格式,比如AutoCAD、Word、Excel等文件下载下来的文件中就会多出一些换行符//0x0d和0x0a,这样可能导致某些格式的文件无法打开,有些也可以正常打开。同//时response.reset()这种方式也能清空缓冲区, 防止页面中的空行等输出到下载内容里去

 

 

除特别注明外,本站所有文章均为我要编程原创,转载请注明出处来自http://5ycode.com/article/274.html

关于
该用户很懒!
切换注册

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享