html文件下载时的header设置
来源:互联网 发布:表格数据不多 格式大 编辑:程序博客网 时间:2024/05/19 14:39
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。Content-disposition其实可以控制用户请求所得的内容存为一个文件的时候提供一个默认的文件名,文件直接在浏览器上显示或者在访问时弹出文件下载对话框。
格式说明:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段说明:
Content-Disposition为属性名
disposition-type是以什么方式下载,如attachment为以附件方式下载
disposition-parm为默认保存时的文件名
服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。
Content-Disposition就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名。具体的定义如下:
content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension-parm
filename-parm = "filename" "=" quoted-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )
那么由上可知具体的例子:
Content-Disposition: attachment; filename="filename.xls"
当然filename参数可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个"文件下载"的对话框,接下来就是由你来决定"打开"还是"保存" 了。
注意事项:
1.当代码里面使用Content-Disposition来确保浏览器弹出下载对话框的时候。 response.addHeader("Content-Disposition","attachment");一定要确保没有做过关于禁止浏览器缓存的操作。如下:
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
不然会发现下载功能在opera和firefox里面好好的没问题,在IE下面就是不行。
例:
HTTPResponseHeader header( "HTTP/1.0", 200, "OK", false );
header.addHeader( "Content-type: application/octet-stream" );
header.addHeader( "Content-Disposition: attachment; filename=config" );提示是否下载文件 文件名:config 文件格式:二进制,无扩展名
附:
http://tool.oschina.net/commons
文件扩展名对应的content-type
完
- html文件下载时的header设置
- 利用html的header下载文件
- 文件下载header设置
- javaweb,文件下载设置Header
- 强制文件下载header设置
- https下载文件http header 设置
- php 下载文件 中文乱码 header设置
- 文件下载中设置response的Header中的文件名为ISO-8859-1
- 下载文件设置header的filename要用ISO8859-1编码的原因
- 文件下载,header
- php Header文件下载
- header下载文件、readfile下载文件
- header函数 自动下载文件
- HTML的上传、下载文件
- html实现文件的下载
- 用php中的header下载大文件的方法
- Zend Framework中header下载文件的问题及解决
- 通过设置文件HTTP header来实现下载文件自动重命名
- html绘制课程表
- oracle创建用户导入本地SQL脚本
- python子类调用父类的方法
- 基本套接字编程(1) -- tcp篇
- [leetcode]95. Unique Binary Search Trees II(Java)
- html文件下载时的header设置
- BAT路线图1.0
- Spark Streaming介绍,DStream,DStream相关操作(来自学习资料)
- hdu 1171 Big Event in HDU
- C++之红黑树(一)
- Spring 实现数据库读写分离
- java多线程
- Java Collection复习整理
- 数据库(第一范式,第二范式,第三范式)