Content-disposition中Attachment和inline的区别

标签: content disposition attachment | 发表时间:2015-03-03 17:46 | 作者:hw1287789687
出处:http://www.iteye.com

java web中下载文件时,我们一般设置 Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.

Content-disposition: inline; filename=foobar.pdf

表示浏览器内嵌显示一个文件

 

Content-disposition: attachment; filename=foobar.pdf

表示会下载文件,如火狐浏览器中

 

spring mvc中

@ResponseBody
	@RequestMapping(value = "/download",produces="application/octet-stream")
	public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2)
			throws IOException {
		byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");
		response.addHeader("Content-Disposition", "inline;filename=\"a.jpg\"");
		return bytes;
	}

 如上代码中是内嵌显示图片呢?还是会弹框下载呢?

答案是:弹框下载

为什么呢?设置为inline应该是内嵌显示啊!

因为response content type设置成了"application/octet-stream"

注意:我们说是内嵌显示还是下载,那 一定是针对可内嵌显示的类型,例如"image/jpeg","image/png"等.

 

看下面的例子:设置response content type为" image/jpeg"

@ResponseBody
	@RequestMapping(value = "/download",produces="image/jpeg")
	public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2,String downloadType)
			throws IOException {
		byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");
		response.addHeader("Content-Disposition", downloadType+";filename=\"a.jpg\"");
		return bytes;

	}

 在浏览器中访问:http://localhost:8080/tv_mobile/video/download?downloadType=inline 时就内嵌显示:



 

当在浏览器中访问:http://localhost:8080/tv_mobile/video/download?downloadType=attachment  时就弹框下载.

参考:http://hw1287789687.iteye.com/blog/2188480



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [content disposition attachment] 推荐:

Content-disposition中Attachment和inline的区别

- - 编程语言 - ITeye博客
java web中下载文件时,我们一般设置 Content-Disposition告诉浏览器下载文件的名称,是否在浏览器中内嵌显示.. 表示浏览器内嵌显示一个文件. 表示会下载文件,如火狐浏览器中.  如上代码中是内嵌显示图片呢?还是会弹框下载呢?. 为什么呢?设置为inline应该是内嵌显示啊!.

正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)

- - IE浏览器中文网站
最近在做项目时遇到了一个 case :需要实现一个强制在浏览器中的下载功能(即强制让浏览器弹出下载对话框),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符). 前一个需求很容易实现:使用 HTTP Header 的 Content-Disposition: attachment 即可,还可以配合 Content-Type: application/octet-stream 来确保万无一失.

Nginx content cache Nginx内容缓存

- - CSDN博客推荐文章
原文地址: http://nginx.com/resources/admin-guide/caching/. When caching is enabled NGINX saves responses in the cache on the disk and uses them to respond to clients without proxying the requests..

CDN简介(Content Delivery Network,内容分发网络)

- - 行业应用 - ITeye博客
CDN的全称是Content Delivery Network,即内容分发网络. 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度. 从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题.

Mail Attachment Downloader – 批量下载邮箱附件 | 小众软件 > 网络工具

- Lee Jia - 小众软件
如果你经常收到带附件的邮件,或者是喜欢像柴柴一样有什么事喜欢将一些常用文档扔上 Gmail ,那么 Mail Attachment Downloader 一定非常适合你. Mail Attachment Downloader 可以批量下载邮箱附件,可以自己设置规则来批量下载特定附件. Mail Attachment Downloader 支持Hotmail/Live、GMail、AOL和Y!Mail,但是如果你想使用其他邮箱,可以再 mail server 选项卡中设置.

Android数据的四种存储方式SharePreference、SQLite、Content Provider和File (二) —— SQLite

- stony - 博客园-首页原创精华区
  SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:.     INTEGER: 整数.   在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特定格式的TEXT、REAL和INTEGER的值来代替显示,为了能方便的操作DATE类型,SQLite提供了一组函数,详见:http://www.sqlite.org/lang_datefunc.html.