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浏览器下载而非打开文件相关推荐

  1. Chrome浏览器下载失败的解决方法

    Chrome浏览器下载失败的解决方案 Chrome浏览器下载被阻拦的解决方法 chrome浏览器下载失败情况一(已阻止此不安全ChromeInstaller.exe文件) 针对情况一的解决方法 下载前 ...

  2. 谷歌浏览器的下载位置如何设置 Chrome浏览器下载路径设置方法简述

    在Chrome地址栏输入"chrome://settings/"后回车; 谷歌浏览器的下载位置如何设置?Chrome浏览器下载路径设置方法简述 谷歌浏览器的下载位置如何设置?Chr ...

  3. IE浏览器下载图片直接打开的问题

    使用IE浏览器下载图片直接打开的解决方法 两个部分的内容: ng alain中的下载文件模块的组件的引用 webpack打包遇到的一个问题 ng alain 链接如下:查看ng alain插件 完美解 ...

  4. 启用Chrome浏览器保存网页为单个MHTML文件的功能

    启用Chrome浏览器保存网页为单个MHTML文件的功能 MHTML简介 网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Document ...

  5. chrome html 读写文件路径,Chrome浏览器支持直接读写本地文件了

    本文首发于公众号:符合预期的CoyPan 写在前面 最新版的Chrome(Chrome 83, 须要开启权限)支持直接读写本地文件了.javascript 开启方法:Chrome浏览器升级到83版本以 ...

  6. Chrome浏览器下载Word、Excel、PPT,打开提示错误问题

    子丰最近刚开始使用chrome浏览器,但是从网页.文库或者邮件等地方下载Word.Excel和PPT后,打开总是提示错误.        Word和Excel还是可以打开看里面的内容,只是会提示&qu ...

  7. 【软件】Chrome 浏览器下载文件崩溃

    问题 使用chorme浏览器,点击文件下载链接,chrome浏览器会崩溃(自动关闭) 解决方法 看看 chrome 中有没有装迅雷下载插件,如果有的话,将该插件禁用或者删除 .如果没有换个版本试试.

  8. download.js 实现txt,js文件等浏览器下载 而不是打开

    现在本人正在做聊天系统,最近支持收发文件,那下载当然是不可避免的 1.第一步想的是open一个窗口下载文件但事实证明显然不合适,现在的浏览器都是会主动拦截弹窗 2.a通过download属性通知浏览器 ...

  9. js浏览器下载jpg, png, txt文件踩坑(尝试了百度的各种方法,以下总结2个靠谱点的)

    使用a标签下载jpg,png , txt 格式文件的话,因为浏览器机制的原因,会直接打开文件而不是下载!(如果是相对路径的文件,使用a标签的href则能正常下载) 网络图片jpg,png下载 例如le ...

最新文章

  1. 手把手教你如何成为大牛
  2. python【蓝桥杯vip练习题库】ADV-303 数组求和
  3. mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
  4. java api文档_细说API – 文档和前后端协作
  5. [转]面向接口编程详解(一)——思想基础
  6. Python学习杂记之静态网页学习
  7. linux 重庆mysql_Linux服务器上MYSQL的安装
  8. 1999元的AirPods Pro无线耳机突然发布,史上最大升级,买不买?
  9. ffmpeg系列-视频旋转角度实现
  10. 转贴:既生瑜何生亮:FreeBSD与Linux再比较
  11. 21 意境级讲解 共指消解的方法
  12. 【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)
  13. RubyonRails on linux配置
  14. 如何查看路由器中的宽带密码
  15. MISC中图片隐藏文件分离
  16. linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法
  17. 如何解决ARP欺骗攻击
  18. 数据可视化编程题练习
  19. window10下搭建php的运行环境
  20. Android 短信验证码输入框

热门文章

  1. 函数式思维: 为什么函数式编程越来越受关注
  2. / ./ ../ ../../ ../../../ 的含义
  3. 微信支付图片上传java_微信开发-----微信公众号调用微信上传图片接口
  4. NOI, NOIP, IOI, ACM
  5. 【幻化万千戏红尘】qianfengDay09-java基础学习:接口,抽象类,抽象方法,多态,instanceof
  6. 子弹短信内部技术分享:Redis
  7. 记一位美术变成开发者的经历
  8. 根据关键词取商品列表API返回值说明
  9. 增广贤文是不多的古典珍宝之一
  10. 【Easy Python】第四话:爬虫初探——玩转豆瓣二百五(下)