javascript - 无法设置 Blob 的文件名

标签 javascript blob

我正在尝试自动下载这样的 blob:

blobGeneratingFunction.then(blob => {
  // blob => Blob(3797539) {size: 3797539, type: "image/png"}
  let file = new Blob([blob], { type: 'application/octet-stream' })
  file.name = 'test.png'
  file.download = 'test.png'
  let blobURL = URL.createObjectURL(file)
  window.location.href = blobURL
})

namedownload 属性都无法设置文件名,现在是:

f486177d-6f5e-4f96-91a9-8df08e7d9da0

如何正确设置文件名?

最佳答案

Blob没有 name属性。

保留原件type ,并使用<a>元素为 download属性为 href设置为Blob URL ,调用.click()<a>将元素附加到 document.body 后的元素.

blobGeneratingFunction.then(blob => {
  let a = document.createElement("a") 
  let blobURL = URL.createObjectURL(blob)
  a.download = 'test.png'
  a.href = blobURL
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
})

关于javascript - 无法设置 Blob 的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374038/

相关文章:

javascript - firestore < 查询与 orderBy 查询混合

javascript - 使用 javascript 禁用 HTML 中的按钮

c# - 有没有办法从 azure blob 中获取所有文件

javascript - Windows 运行时 Javascript 应用程序 - 启动 Javascript 文件

javascript - 将 HTML 编辑器的内容保存为桌面上的 HTML 文件

performance - Azure 存储的下载速度慢

php - 如何在 Symfony 中强制重新加载 javascript/css?

javascript - 将 float div 的父级居中对齐

javascript - Hammer.js 中 panend 和 pancancel 的区别?

asp.net - 如何将 'System.Drawing.Image' 添加到 'System.Web.UI.WebControls.Image'