oss pdf浏览器直接下载_阿里云oss直接下载的小技巧
需求:
点击图片的下载链接直接触发浏览器下载,而不是浏览器打开图片。
思路:
1、谷歌浏览器在点击图片链接的时候往往是直接打开图片而不是下载;
2、首先考虑的是在a标签上增加download属性来触发下载,但是由于该属性有跨域限制,导致失效;
3、其次考虑在Response头上增加“Content-Disposition“字段,格式为“Content-Disposition=attachment;filename=abc.png”;
4、由于文件存储在OSS上,给的下载地址是直接从OSS下载的,经过查询阿里云的文档后,发现只要在上传的Form表单中增加Content-Disposition属性,下载时OSS服务器返回的Response中就会自动携带了该字段。
相关资料:
截取自阿里云文档中关于对上传到OSS描述的部分资料:
说明 OSS支持HTTP协议规定的5个请求头:Cache-Control、Expires、Content-Encoding、Content-Disposition、Content-Type。如果上传Object时设置了这些请求头,则该Object被下载时,相应的请求头值会被自动设置成上传时的值。
名称类型是否必选描述
Authorization
字符串
否
表示请求本身已被授权,详情请参见RFC2616。
通常情况下Authorization是必选请求头,但如果采用了URL包含签名,则不用携带该请求头。详情请参见在URL中包含签名。
默认值:无
Cache-Control
字符串
否
指定该Object被下载时网页的缓存行为,详情请参见RFC2616。
默认值:无
Content-Disposition
字符串
否
指定该Object被下载时的名称,详情请参见RFC2616。
默认值:无
截取自MSDN中关于对Content-Disposition描述的部分资料:
在常规的HTTP应答中,Content-Disposition 响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者页面的一部分),还是以附件的形式下载并保存到本地。
作为消息主体中的消息头
在HTTP场景中,第一个参数或者是inline(默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示),或者是attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将filename的值预填为下载后的文件名,假如它存在的话)。
Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.png"
代码:
/** formData为上传的表单对象 **/
formData.append('Content-Disposition', 'attachment;filename=' + file.name); // file.name就是要下载的文件的名称
实现的效果:
charles抓包显示Response中携带了该字段:
在谷歌浏览器下表现为直接下载而不是打开图片:
oss pdf浏览器直接下载_阿里云oss直接下载的小技巧相关推荐
- maven配置阿里云_阿里云OSS PicGo 配置图床教程 超详细
阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...
- java oss 批量传输_阿里云OSS对象存储,服务端签名后直传阿里云OSS
继续上一章文章,这次要操作的是,浏览器请求服务要到签名后直传给OSS对象存储. 1.写好服务端的方法,传给前台相应的密钥 @Resource OSSClient ossClient; @Value(& ...
- modelsim 各版本 网盘_阿里云盘官方下载-阿里云盘最新版本 v1.0.1
阿里云盘app下载分享,阿里云盘是一款非常实用的手机云存储服务软件,原名为"阿里云网盘",存储空间大,操作速度快,非常便捷好用,欢迎下载使用~ [软件简介] 阿里云网盘是阿里云团队 ...
- oss子账号_阿里云OSS子账号RAM权限设置方法
怕oss管理人员误操作把oss里面的Bucket删除怎么办?创建阿里云子账号即可.这里说下阿里云OSS子账号RAM权限设置方法. 最新更新:阿里云RAM权限生成工具 首先进入阿里云后台设置子账号的页面 ...
- 一文读懂什么是阿里云OSS,如何使用Java操作阿里云OSS?
一.什么是阿里云OSS OSS: Object Storage Service 对象存储服务是一种海量.安全.低成本.高可靠的云存储服务,适合存放任意类型的文件.容量和处理能力弹性扩展,多种存储类型供 ...
- uc浏览器邀请码_阿里云Teambition网盘收到邀请码,上传下载不限速!!!
微信公众号更新以后,推送不是按照优先来的:你们可以把我的微信公众号点击设置为星标,以便于及时的接收信息. 哈喽!大家好,我是斜杠君,每天早上八点推文(偶然会凌晨),还有关键词是最下面的数字.底部点赞. ...
- fastadmin 阿里云oss解决访问图片是下载
阿里云oss的上传策略默认是公网访问是下载 需要去 修改插件里的这个文件 addons/alioss/libary/oss/core/MimeTypesw.php 如果之前的也想全部是浏览 找到对应图 ...
- 阿里云OSS上传下载和短信验证码
(一):首先得在阿里云OSS上开通相关的服务,具体哪里开通及如何操作请参考此链接: https://help.aliyun.com/document_detail/31883.html?spm=517 ...
- Springboot集成 阿里云OSS上传及下载
文章目录 使用手册 maven依赖及环境配置 定义配置bean及OSS工具类 定义UploadController和DownloadController 下载接口优化为返回重定向oss路径 遇到的问题 ...
最新文章
- php for windows二进制包,PHP5ForWindowsVC9-x865.4.3安装版
- android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码
- python partition函数_如何使用正确的姿势进行高效Python函数式编程?
- 归纳几点html编码要素--杜绝浏览器不兼容
- 微型计算机硬盘为什么要分区,为什么懂电脑的人,都说硬盘不需要分区?看完你就知道了...
- SVN遇到Can't convert string from 'UTF-8' to native encoding(转)
- potplayer 多个进程_什么是进程
- 百度搜索大数据:“摆摊技巧”搜索热度暴涨655%;中国电信:将逐步关闭3G网络业务;IntelliJ IDEA新版发布|极客头条...
- 小白初学MySQL----Win7下关于安装和初步使用~
- python打包exe_Python | 用Pyinstaller打包发布exe应用
- layui获取select 文本_小程序富文本编辑器editor初体验
- 基于特定实体的文本情感分类总结(PART II)
- oracle语句_ORACLE 常用语句实例:CTE MERGE 结合
- 批量识别图片大致不相同图片_一款非常优秀的文字识别工具,可以批量图片识别文字...
- Win 10系统怎么确认是否打开了虚拟化
- 哔哩哔哩下载的视频怎么找不到?
- 第几天(c语言实现,两种做法)
- 如何使postman变为汉化版
- 微信小程序设置背景图片
- 牛客小白月赛24 J.建设道路
热门文章
- 祖-玛珑全新馥郁系列香氛“香根草与香子兰”上市
- java 把jsp 保存成图片_将jsp页面转化为图片或pdf(一)(qq:1324981084)
- Linux命令之磁盘分区fdisk
- 0013基于单片机电子琴控制系统设计
- MySQL数据库—InnoDB行存储格式
- C# 绘制箭头的方法,仿微信截图的箭头
- C语言编程>第十周 ⑧ 请编写函数fun,其功能是:将两个两位正整数x、y合并成一个整数放在z中。合并的方式是:将x的十位和个位依次放在z的十位和千位上,y十位和个位依次放在z的百位和个位上。
- SAP物料移动类型和自动科目设置
- 记我亲爱的导师米新江老师---身残志不残
- 大数据预科班1~4天习题