Content-disposition中Attachment和inline的区别

简介:

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

Content-disposition: inline; filename=foobar.pdf

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

 

Content-disposition: attachment; filename=foobar.pdf

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

 

spring mvc中

Java代码   收藏代码
  1. @ResponseBody  
  2.     @RequestMapping(value = "/download",produces="application/octet-stream")  
  3.     public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2)  
  4.             throws IOException {  
  5.         byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");  
  6.         response.addHeader("Content-Disposition""inline;filename=\"a.jpg\"");  
  7.         return bytes;  
  8.     }  

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

答案是:弹框下载

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

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

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

 

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

Java代码   收藏代码
  1. @ResponseBody  
  2.     @RequestMapping(value = "/download",produces="image/jpeg")  
  3.     public byte[] downloadFile(HttpServletRequest request, HttpServletResponse response,String contentType2,String downloadType)  
  4.             throws IOException {  
  5.         byte[]bytes=FileUtils.getBytes4File("D:\\Temp\\cc.jpg");  
  6.         response.addHeader("Content-Disposition", downloadType+";filename=\"a.jpg\"");  
  7.         return bytes;  
  8.   
  9.     }  

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



 

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

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

相关文章
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
1592 4
一文搞懂SQL优化——如何高效添加数据
|
运维 大数据 Shell
自动化运维工具—Ansible-1
自动化运维工具—Ansible
487 0
|
网络协议 小程序 对象存储
阿里云加了防盗链,小程序白名单如何填写
一、场景 场景一:我的阿里云服务器,做了图片连接的防盗链,需要添加域名白名单图片才可显示出来 场景二:我们的使用场景是这样的,DNS解析至阿里云的CND,CDN的回源指向阿里云的OSS
1607 1
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
1620 1
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
XML 搜索推荐 JavaScript
摸鱼神器IntelliJ IDEA插件EasyCode的使用
摸鱼神器IntelliJ IDEA插件EasyCode的使用
1868 1
|
Linux Windows
|
SQL 监控 安全
|
开发工具 git
git设置默认编辑为vim
f you want to set the editor only for Git, do either (you don’t need both): Set core.editor in your Git config: git config --global core.
3985 0
|
Python
python实现:旋转矩阵转换为四元数
python实现:旋转矩阵转换为四元数
789 0
|
机器学习/深度学习
Kaggle实战入门:泰坦尼克号生还预测(进阶版)
Kaggle实战入门:泰坦尼克号生还预测(进阶版)