文档章节

Content-disposition中Attachment和inline的区别

zjg23
 zjg23
发布于 2017/04/27 14:22
字数 295
阅读 10
收藏 0

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://www.tuicool.com/articles/FJZvuy

共有 人打赏支持
zjg23
粉丝 19
博文 122
码字总数 40982
作品 0
济南
程序员
Content-Disposition 响应头

今天在用阿里云 oss 图片云存储 用到文件上传。 ObjectMetadata meta = new ObjectMetadata();meta.setContentLength(instream.available());meta.setCacheControl("no-cache");meta.setHead......

干干
02/02
0
0
Content-Disposition 中文编码

今天在使用koa下载文件的时候,一直抱错'invalid charactor',关键是明明测试都没得问题的,郁闷了老半天 后来返现测试上用的是test.xlsx,而生产上是动态的文件名,有些时候会是中文,所以基...

小昭归来
2016/12/22
35
0
Content-Disposition的使用方法

在进行Web开发时,可能遇到遇到以下几种需求: 希望某类或者某已知MIME 类型的文件(比如:.gif;.txt;*.htm)能够在访问时弹出“文件下载”对话框。 希望客户端下载时以指定文件名显示。 希望...

i33
2014/04/23
0
0
Content disposition 允许 servlet 指定文档表示的信息

Content disposition HTTP response header中的content-disposition 允许 servlet 指定文档表示的信息。使用这种header ,你就可以将文档指定成单独打开(而不是在浏览器中打开),还可以根据...

答复哈
2010/10/19
0
0
JSP、Struts2下载中文文件名乱码问题

方案一: 原来处理下载的代码如下: response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); 下载的程序里有了这句,一般在......

长平狐
2012/11/12
421
0

没有更多内容

加载失败,请刷新页面

加载更多

崩溃bug日志总结1

目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateException非法状态异常 1.3 android.content.res.Resources$NotFoundException 1.4 java.lang.Ille......

潇湘剑雨
54分钟前
0
0
学习大数据为什么要先学Java?

计算机编程语言有很多,目前用的多一点的就是Java,C++,Python等等。目前大多数学习大数据的人都是选择学习Java,那Java到底好在哪呢?为什么学大数据之前要先学Java呢?我们今天就来分析一...

董黎明
今天
1
0
php删除服务器所有session

php删除服务器所有session踢掉所有在线用户linux 注意:如果要删除服务器上所有session,重启php服务是解决不了问题的,php的session是持久化的。 有效解决办法: 删除 /tmp 下的所有文件(默...

妖尾巴
今天
0
0
Ubuntu18.04 安装最新版WPS

1.手动卸载libreoffice:sudo apt-get remove --purge libreoffice* 2.官网下载WPS和字体: WPS:http://wps-community.org/download.html 字体:http://wps-community.org/download.html?vl......

AI_SKI
今天
4
0
数据结构(算法)-图(深度优先搜索 DFS)

#include <iostream>using namespace std;#define MaxVex 30typedef char VertexType;typedef struct vexNode adjList[MaxVex];struct edgeNode{int adjvex;//邻接点......

ashuo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部