前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Content-Disposition~强制浏览器保存文件

Content-Disposition~强制浏览器保存文件

作者头像
跑马溜溜的球
发布2020-12-07 15:35:41
1.8K0
发布2020-12-07 15:35:41
举报
文章被收录于专栏:日积月累1024

问题

假设你的网站有一张图片 http://file.test.com/img/login.jpg

使用浏览器访问这个url,默认情况下,浏览器会自动展现这张图片。那么问题来了,如果你目的是想让浏览器默认下载而非展现这张图,怎么办呢?

解决

http header中有一个字段,可以帮你实现这个目的。

代码语言:javascript
复制
Content-Disposition:attachment;

实践

nginx中增加配置

代码语言:javascript
复制
location ~ img {
    add_header Content-disposition "attachment";
}

即对所有图片目录的访问,响应头中增加Content-Disposition。

使用浏览器访问 http://file.test.com/img/login.jpg

chrome的表现:直接下载login.jpg。

ie9表现:提示“您是要打开还是保存来自file.test.com的login.jpg”

为文件换个名字

有时你希望用户侧使用另外的名字保存文件,这时只要增加filename字段即可。

代码语言:javascript
复制
Content-Disposition:attachment;filename=NewnName

nginx中,你可以这样写

代码语言:javascript
复制
location ~ img {
    add_header Content-disposition "attachment;filename=new.jpg";
}

此时,你再次用浏览器打开http://file.test.com/img/login.jpg时,会发现文件会以new.jpg的名字被保存。

进一步

你可以用php之类的语言,动态输出http头部的Content-disposition字段及文件内容,这样可以根据需要给文件任意命名了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/08/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决
  • 实践
  • 为文件换个名字
  • 进一步
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档