让Chrome浏览器下载而非打开文件
1. 问题场景
浏览器处理附件的默认方式是:对于其支持的文件,默认会打开,对于不支持的文件默认下载。
当用户将文件上传到AWS的S3后,S3会返回一个ID,用户可以使用该ID获得文件的下载连接,如果使用浏览器访问该下载连接,浏览器通常会按照默认的方式处理附件(打开或下载文件,如果是下载文件,文件名通常并不是之前上传的文件名)。
那么,有没有一种方式能够指定浏览器处理附件的方式?同时又能够指定附件的名字呢?
2. 解决方案
可以在HTTP的响应Head中,使用Content-Disposition指示附件在浏览器中的处理方式。
在常规的 HTTP 应答中,Content-Disposition 响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。
语法如下
在 HTTP 场景中,第一个参数或者是 inline(默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示),或者是 attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将 filename 的值预填为下载后的文件名,假如它存在的话)。
Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"
3. 参考
Content-Disposition
让Chrome浏览器下载而非打开文件相关推荐
- Chrome浏览器下载失败的解决方法
Chrome浏览器下载失败的解决方案 Chrome浏览器下载被阻拦的解决方法 chrome浏览器下载失败情况一(已阻止此不安全ChromeInstaller.exe文件) 针对情况一的解决方法 下载前 ...
- 谷歌浏览器的下载位置如何设置 Chrome浏览器下载路径设置方法简述
在Chrome地址栏输入"chrome://settings/"后回车; 谷歌浏览器的下载位置如何设置?Chrome浏览器下载路径设置方法简述 谷歌浏览器的下载位置如何设置?Chr ...
- IE浏览器下载图片直接打开的问题
使用IE浏览器下载图片直接打开的解决方法 两个部分的内容: ng alain中的下载文件模块的组件的引用 webpack打包遇到的一个问题 ng alain 链接如下:查看ng alain插件 完美解 ...
- 启用Chrome浏览器保存网页为单个MHTML文件的功能
启用Chrome浏览器保存网页为单个MHTML文件的功能 MHTML简介 网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Document ...
- chrome html 读写文件路径,Chrome浏览器支持直接读写本地文件了
本文首发于公众号:符合预期的CoyPan 写在前面 最新版的Chrome(Chrome 83, 须要开启权限)支持直接读写本地文件了.javascript 开启方法:Chrome浏览器升级到83版本以 ...
- Chrome浏览器下载Word、Excel、PPT,打开提示错误问题
子丰最近刚开始使用chrome浏览器,但是从网页.文库或者邮件等地方下载Word.Excel和PPT后,打开总是提示错误. Word和Excel还是可以打开看里面的内容,只是会提示&qu ...
- 【软件】Chrome 浏览器下载文件崩溃
问题 使用chorme浏览器,点击文件下载链接,chrome浏览器会崩溃(自动关闭) 解决方法 看看 chrome 中有没有装迅雷下载插件,如果有的话,将该插件禁用或者删除 .如果没有换个版本试试.
- download.js 实现txt,js文件等浏览器下载 而不是打开
现在本人正在做聊天系统,最近支持收发文件,那下载当然是不可避免的 1.第一步想的是open一个窗口下载文件但事实证明显然不合适,现在的浏览器都是会主动拦截弹窗 2.a通过download属性通知浏览器 ...
- js浏览器下载jpg, png, txt文件踩坑(尝试了百度的各种方法,以下总结2个靠谱点的)
使用a标签下载jpg,png , txt 格式文件的话,因为浏览器机制的原因,会直接打开文件而不是下载!(如果是相对路径的文件,使用a标签的href则能正常下载) 网络图片jpg,png下载 例如le ...
最新文章
- 手把手教你如何成为大牛
- python【蓝桥杯vip练习题库】ADV-303 数组求和
- mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
- java api文档_细说API – 文档和前后端协作
- [转]面向接口编程详解(一)——思想基础
- Python学习杂记之静态网页学习
- linux 重庆mysql_Linux服务器上MYSQL的安装
- 1999元的AirPods Pro无线耳机突然发布,史上最大升级,买不买?
- ffmpeg系列-视频旋转角度实现
- 转贴:既生瑜何生亮:FreeBSD与Linux再比较
- 21 意境级讲解 共指消解的方法
- 【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)
- RubyonRails on linux配置
- 如何查看路由器中的宽带密码
- MISC中图片隐藏文件分离
- linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法
- 如何解决ARP欺骗攻击
- 数据可视化编程题练习
- window10下搭建php的运行环境
- Android 短信验证码输入框
热门文章
- 函数式思维: 为什么函数式编程越来越受关注
- / ./ ../ ../../ ../../../ 的含义
- 微信支付图片上传java_微信开发-----微信公众号调用微信上传图片接口
- NOI, NOIP, IOI, ACM
- 【幻化万千戏红尘】qianfengDay09-java基础学习:接口,抽象类,抽象方法,多态,instanceof
- 子弹短信内部技术分享:Redis
- 记一位美术变成开发者的经历
- 根据关键词取商品列表API返回值说明
- 增广贤文是不多的古典珍宝之一
- 【Easy Python】第四话:爬虫初探——玩转豆瓣二百五(下)