查看文档:https://help.aliyun.com/document_detail/383950.html
起因:有一个上传附件及下载附件的功能,支持上传图片(png,jpg)、视频、pdf、excel、word类型
问题:下载图片以及word类型时,使用a标签的download都可以直接下载,然而在下载视频、pdf时则会显示为预览,而不是直接下载
原本的 pdf 文件 MIME type 为 application/pdf,浏览器识别到这个 type 之后会自动在浏览器打开,所以说我们在这里修改 type 即可。
开始以为是企业微信的问题,后来多方实验、查证后发现可以通过转换Content-Type='application/octet-stream'【二进制流数据】,就可以在拿到返回链接的时,执行下载任务而非查看预览。在new oss里传入,如 client.put(
"exampledir/exampleobject.txt",
data
{headers} );
如果没有指定,系统默认设置,阿里云设置的默认图片上传格式是下载格式
补充知识:
文件下载响应头的设置:
content-type 指示响应内容的格式
content-disposition 指示如何处理响应内容。
一般有两种方式:
inline:直接在页面显示
attchment:以附件形式下载
实现文件下载的设置
content-type:'application/octet-stream'
content-disposition: ' attachment; filename="example.jpg" ' 注:example.jpg为对应的文件名
当Content-attachment = `inline; filename=${file.name}`,file.name需要处理,要不上传为中文名的文件时,会报错,我是直接注释这行