`

Content-disposition中Attachment和inline的区别

阅读更多

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

  • 大小: 24.6 KB
  • 大小: 22.7 KB
分享到:
评论

相关推荐

    content-disposition-parser:解析内容处置HTTP标头

    用于Content-Disposition HTTP标头的小巧且经过全面测试的JS解析器,对于nodejs和浏览器环境零依赖。 该库解析标头字符串,使用可以提取的属性构造对象。 没有验证,没有转换(decodeURIComponent()除外)只是...

    content-disposition:创建并解析HTTP Content-Disposition标头

    内容倾向 创建并解析HTTP Content-Disposition标头安装$ npm install content-dispositionAPI var contentDisposition = require ( 'content-disposition' )contentDisposition(文件名,选项) 使用给定的文件名...

    header中Content-Disposition的作用与使用方法

    本文章详细的介绍了关于php header中Content-disposition用法详细,有需要了解header用法的朋友可参考一下

    Content-Disposition使用方法和注意事项

    最近不少Web技术圈内的朋友在讨论协议方面的事情,有的说web开发者应该熟悉web相关的协议,有的则说不用很了解。...本文我们来说一下MIME 协议的一个扩展Content-disposition。 我们在开发web系统时有时会有以下需求

    2021科教版4下测试卷.pdf

    2021科教版4下测试卷.pdf

    bug-chromium-pdf-content-disposition-encoding

    bug-chromium-pdf-content-disposition-encoding

    将数据导出到Excel

    将数据导出到Excel源代码及方法:response.setContentType("application/vnd.ms-... response.addHeader("Content-Disposition", "attachment;filename=logininfo.xls"); String name = request.getParameter("name");

    cgi实现下载文件

    使用cgi代码在网页上实现文件的下载功能。

    http/formdata

    multipart/form-data的数据由多个part组成,part间通过boundary分隔符进行分割,每个part由header和content组成 multipart/form-data的格式大致为: ----------------------------904587217962624105581666 ...

    nginx文件强制下载的配置方法

    Content-disposition: inline; filename=foobar.pdf   #表示会下载文件,如火狐浏览器中 Content-disposition: attachment; filename=foobar.pdf nginx配置如下,在相应的server中添加如下location: 代码如下: ...

    gradle-6.7-bin.zip

    gradle-6.7-bin.zip 分享了,官网站下载的下载地址: https://dl-download.csdn.net/down11/20190419/11e97afb8a4c05a6f253270eecc9f3a7.zip?response-content...

    phantomjs-2.1.1-windows.zip

    windows版本通用工具,在官网下载巨慢总断的可以在这里下载。此工具可以爬取js渲染的页面,值的拥有。官网链接:...content-disposition=attachment%3B%20filename%3D%22phantomjs-2.1.1-windows.zip%22

    libsnappy 1.1.3版本

    libsnappy已编译过的二进制文件 源码为 1.1.3版本 ...content-disposition=attachment%3B%20filename%3Dsnappy-1.1.3.tar.gz&response-content-type=application%2Foctet-stream

    ( response.setHeader()下载中文文件名乱码

    ( response.setHeader()下载中文文件名乱码问题

    解析如何在PHP下载文件名中解决乱码的问题

    通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来下载,相信这个大家...header(‘Content-Disposition: attachment; filename=’ . $filename);print “Hello!”;?>但是,如果

    JSP实现从数据库导出数据到Excel下载的方法

    //response.setHeader(Content-disposition,inline; filename=videos.xls); response.setHeader(Content-disposition,attachment; filename=test.xls); //以上这行设定传送到前端浏览器时的档名为test.xls //...

    下载文件个别浏览器文件名乱码解决办法

    代码如下: if (context.Request.UserAgent.ToLower().IndexOf(“msie”, System.StringComparison.Ordinal) > -1)//IE浏览器 { context.Response.AddHeader(“content-disposition”, “filename=” + ...

    CVE-2020-5398:VE CVE-2020-5398-Spring MVC的RFD(反射文件下载)攻击

    在Spring Framework(版本低于5.2.3的5.2.x,版本5.1.13的5.1.x和版本5.0.16的5.0.x)中,应用程序在受到攻击时很容易受到反射文件下载(RFD)攻击在响应中设置“ Content-Disposition”标头,其中filename属性是从...

    PHP附件下载中文名称乱码的解决方法

    分享给大家供大家参考,具体...header ( "Content-disposition: attachment; filename=$filename.xls" ); 网上说,在RFC2231的定义里面, 多语言编码的Content-Disposition应该这么定义: 复制代码 代码如下:Content-

Global site tag (gtag.js) - Google Analytics