response.setHeader("Content-disposition","attachment;filename="+fileName) 下载时文件名中存在空格错误

最近在进行文件下载时发现一个问题,就是下面语句运行时,下载某些文件正常,下载某些文件异常,后来发现文件名中有空格的文件火狐浏览器是默认将文件名截断了的

response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("gb2312"),"iso8859-1"));

但是在IE上面就是正常的,解决问题的方法有两种,一种比较简单,就是先判断是否是火狐,如果是火狐,则将文件名中的空格去掉,

String agent = (String)request.getHeader("USER-AGENT");
if(agent != null && agent.indexOf("MSIE") == -1) {
  try {
    fileName2=new String(fileName.replace(" ","").getBytes("gb2312"),"iso8859-1");
  } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
  }
}
response.setHeader("Content-disposition","attachment;filename="+fileName2);

另外一种就是加密解密,可以参考这里

时间: 2024-10-07 07:25:10

response.setHeader("Content-disposition","attachment;filename="+fileName) 下载时文件名中存在空格错误的相关文章

去除下载电影和电视剧文件名中的多余字符[python实现]

讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样),,搞得文件名好长,可以使用下面的Python代码,自行修改即可. [python] view plaincopy #!\usr\bin\env python # -*- coding: utf-8 -*- # Author: 吴徐平 # FileName: RefineFileName.py # Function: # 下载的电影电视文件名太长, # 常常含有多余的字符,如'中英双字幕', # 可以使用本Python代码去掉 # Usi

【转】解决response.AddHeader("Content-Disposition", "attachment; fileName=" + fileName) 中文显示乱码

如果fileName为中文则乱码.解决办法是 方法1: response.setHeader("Content-Disposition", "attachment; fileName=" + java.net.URLEncoder.encode(fileName, "UTF-8"));下载的程序里有了上面一句,一般在IE6的下载提示框上将正确显示文件的名字,无论是简体中文,还是日文.但是文字只要超过17个字,就不能下载了.一. 通过原来的方式,也

response.setHeader()下载的用法

1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade (2)请求头 用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求的超链接源地址等. 主要: Accept

firfox中"content-disposition", "attachment;filename=“+filename不能显示文件名字

一般要在浏览器中显示文件名,可以使用以下文件名 // 设置文件名的编码方式,使得文件的名字能够正常安全的显示. filename = URLEncoder.encode(filename, "UTF-8"); // 告诉浏览器这是下载文件 response.setHeader("content-disposition", "attachment;filename="+ filename); response.setHeader("con

利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码

利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码.做了很久终于知道了很好的解决方案. 1.加载辅助函数 $this->load->helper('download'); //下载辅助函数 $this->load->helper('string'); //字符编码转换辅助翻书 2.force_download($filename, $data)通过它的代码可以知道$data 必须是字符串,如果不是字符串

response.setHeader()的用法

摘录自:http://www.cnblogs.com/mingforyou/p/4259113.html 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade (2)请求头 用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的

response.setHeader

1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade (2)请求头 用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求的超链接源地址等. 主要: Accept

response.setHeader()用法

response.setHeader()下载中文文件名乱码问题 收藏  1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade (2)请求头 用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户

response.setHeader();小结

response.setHeader():1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfer-Encoding , Upgrade (2)请求头 用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求