Content-Disposition

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://cymoft.blog.51cto.com/324099/92412
当代码里面使用Content-Disposition来确保浏览器弹出下载对话框的时候。
 
response.addHeader("Content-Disposition","attachment");
 
一定要保证没有做过关于禁止浏览器缓存的操作。
 
response.setHeader("Pragma", "No-cache"); 
response.setHeader("Cache-Control", "No-cache"); 
response.setDateHeader("Expires", 0);
 
不然你会像我一样,发现下载功能在operafirefox里面好好的没问题,在IE下面就是不行,就是找不到文件。死IE,气死我了,调试了一整天!

 

在进行Web开发时,可能遇到遇到以下几种需求:

l          希望某类或者某已知MIME 类型的文件(比如:*.gif;*.txt;*.htm)能够在访问时弹出文件下载对话框。

l          希望客户端下载时以指定文件名显示。

l          希望某文件直接在浏览器上显示而不是弹出文件下载对话框。

对于上面的需求,使用Content-Disposition属性就可以解决。下面是代码示例:

response.setHeader("Content-disposition", "attachment;filename=" + fileName)

//Content-disposition为属性名。

//attachment表示以附件方式下载。如果要在页面中打开,则改为inline

//filename如果为中文,则会出现乱码。解决办法有两种:

//1、使用fileName = new String(fileName.getBytes(), "ISO8859-1")语句

//2、使用fileName = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8)语句 

posted on 2011-03-18 15:35  ATAK  阅读(552)  评论(0编辑  收藏  举报

导航