`

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
分享到:
评论

相关推荐

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

    在HTTP协议中,Content-...在实际开发过程中,根据需要选择合适的disposition-type和为文件提供一个合适的filename是非常关键的。同时,开发者需要注意相关的浏览器缓存策略对Content-Disposition功能的影响。

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

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

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

    在使用Content-Disposition时,需要注意到它是MIME协议的一个扩展,并且在实际应用中有一些重要的使用方法和注意事项。 首先,了解MIME协议。MIME(Multipurpose Internet Mail Extensions)即多用途互联网邮件扩展...

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

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

    bug-chromium-pdf-content-disposition-encoding

    2. **Content-Disposition**:HTTP 头部的 `Content-Disposition` 字段可以设置为 "inline" 或 "attachment",分别指示浏览器将资源作为页面内容显示还是作为一个单独的下载文件。附加的参数如 "filename" 可以指定...

    rfc 2183

    1. **Content-Disposition的类型**:主要有两种类型,`inline`和`attachment`。`inline`通常用于在HTML邮件中嵌入图像或资源,而`attachment`用于表示附件,提示用户下载或保存。 2. **filename参数**:用于指定...

    控制WordExcel在IE中打开,还是下载

    此字段有多种可能的值,其中`inline`和`attachment`是最常用的两种。`inline`意味着文件应该像网页中的其他元素一样被直接展示,而`attachment`则指示浏览器将文件视为附件进行下载。 然而,不同浏览器对`Content-...

    POI Excel Process.doc

    另一方面,"inline"值则会让浏览器尝试在当前窗口中打开文件,例如`response.setHeader("Content-Disposition", "inline; filename=fliename")`。对于中文文件名,需要使用ISO8859-1编码来避免乱码问题。 3. **Java...

    jsp页面生成word或excel

    ### 使用JSP实现Word、Excel格式报表...3. **设置Content-Disposition**:根据需要设置`Content-Disposition`为`attachment`或`inline`,以便控制文件是否直接下载或在浏览器中打开。 例如,在JSP文件中: ```jsp ...

    word__xls文件导出

    - `Content-Disposition`用于指示浏览器如何处理响应数据,`attachment`表示应提示用户下载文件,而`inline`则表示应在浏览器内直接打开文件。 ### 三、导出word文件 在导出word文件时,除了设置正确的`Content-...

    jsp页面生成word或excel.pdf

    在JSP输出Word文档时,如果希望直接在浏览器中预览而不是下载,可以使用`application/msword`作为MIME类型,并设置`Content-Disposition`为`inline`。但需要注意,不是所有浏览器都支持直接预览,可能仍会显示下载...

    java_download

    `:设置`Content-Disposition`头为`inline`,告诉浏览器尝试直接打开文件而不是下载。 #### 2. **纯下载模式**: - 纯下载模式则是让用户将文件下载到本地,而非直接在浏览器中打开。这种方式适用于较大的文件或不...

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

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

    导出数据到exel,word常用代码

    Response.AddHeader("Content-Disposition", "inline;filename=" + HttpUtility.UrlEncode("下载文件.xls", Encoding.UTF8)); // 将数据绑定到一个StringBuilder对象 StringBuilder sb = new StringBuilder(); ...

    导出网页中的table到excel

    - `Content-disposition`头设置为`inline`或`attachment`,分别表示文件在浏览器中直接打开或下载保存。 - 表格数据通过静态方式展示,在实际应用中可以通过后端逻辑动态填充数据。 #### 三、扩展应用 除了将网页...

    Java Servlet实现在浏览器中打开pdf文件

    // 设置响应的Content-Type和Content-Disposition头 response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "inline; filename=\"file.pdf\""); // 打开文件并读取 try ...

    java上传下载文件

    在处理文件数据时,根据`Content-Disposition`头中的信息可以解析出文件名和字段名。需要注意的是,不同浏览器可能在`filename`字段的处理上有所不同,例如Firefox仅提供文件名,而Internet Explorer可能会包含完整...

    java输出文件的几点说明.pdf

    通过设置`Content-disposition`的`attachment`和`inline`,可以控制文件是在浏览器中打开还是下载。`attachment`一般用于强制下载,`inline`则允许在支持的浏览器中直接查看。例如,Excel文件设置为`attachment`时,...

    java输出文件的几点说明.docx

    对于下载前询问用户是打开还是保存文件的情况,可以使用`attachment`,而对于直接在浏览器中打开的场景,可以使用`inline`。 总之,Java输出文件涉及到对HTTP响应的理解,正确设置MIME类型和`Content-Disposition`...

Global site tag (gtag.js) - Google Analytics