js下载跨域文件如果避免浏览器打开?

你在听吗
  • 52
**最近遇到的问题,我们上传的文件都放在oss上的,在下载的时候,pdf,mp4,img等格式的文件都直接默认打开了,需要的效果的能下载到本地,请问有什么解决办法吗?大神们**

a标签download这些属性只能在下载相同域的文件才生效
download.js也使用过,但是下载的文件都打不开

回复
阅读 5.9k
3 个回答
✓ 已被采纳

oss可以批量设置HTTP头,设置Content-Disposition为attachment;访问的时候就是直接下载而不是浏览

设置文件http头里面的Content-Dispositionattachment;filename=文件名可以实现。

function download(url, params) {
  let tempForm = document.createElement('form')
  tempForm.action = url
  tempForm.method = 'get'
  tempForm.style.display = 'none'
  for (var x in params) {
    let opt = document.createElement('textarea')
    opt.name = x
    opt.value = params[x]
    tempForm.appendChild(opt)
  }
  document.body.appendChild(tempForm)
  tempForm.submit()
  return tempForm
}
const url = 'ali-oss-object-url'
download(url)
宣传栏