代码之家  ›  专栏  ›  技术社区  ›  alex

无法设置Blob的文件名

  •  1
  • alex  · 技术社区  · 6 年前

    我正在尝试自动下载如下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
    })
    

    无论是 name download 属性管理以设置文件名,当前文件名为:

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

    如何属性设置文件名?

    1 回复  |  直到 6 年前
        1
  •  4
  •   guest271314    6 年前

    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)
    })