content disposition_图片Content-Type的那些事

最近被反馈一个问题,说上传到阿里oss的图片资源,oss和cdn地址赋值给img标签的src属性不显示,用浏览器打开直接下载,也不能预览,最后发现是Content-Type的原因。

直接访问图片地址,http的响应头Content-Type为application/octet-stream,这是应用程序文件的默认值。意思是未知的应用程序文件浏览器一般不会自动执行或询问执行。浏览器会像对待 设置了HTTP头Content-Disposition 值为attachment的文件一样来对待这类文件。

7d5b103292df447c207587fa05b08f96.png

查看了代码发现,在用ali-oss上传的时候请求头设置的Content-Type就是application/octet-stream,更改成图片类型,问题得到了解决。

cedbf6ae533640b7148dbc61d6f79a6f.png

图片的类型有很多种,对用的Content-Type值总结如下:

switch(ext) {
    case 'jpg':
    case 'jpeg':
        imgMime = 'image/jpeg'
        break
    case 'png':
        imgMime = 'image/png'
        break
    case 'svg':
        imgMime = 'image/svg+xml'
        break
}

ali-oss可以设置mime属性,代码如下:

fileUploadClient.multipartUpload(objectPath, blob, { mime: imgMime }).then(() => {
    ......
    ......
})

官方文档地址:

https://www.npmjs.com/package/ali-oss#multipartuploadname-file-options​www.npmjs.com

d8ea8df360f0953c1023ac48fc103e56.png

mime表示媒体类型(通常称为 Multipurpose Internet Mail Extensions MIME类型)是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值