编辑 ie11 文件的下载名称

Edit download name of a file for ie11

我当前的项目需要下载文件。该文件是自动生成的,并且在保存时有一个不友好的名称,因此我们正在将文件名更改为在下载时更容易阅读的名称。

例如,如果用户下载了一个名为 324343242342.pdf 的文件,我们会将其更改为 Lesson1.pdf 或保存在他们计算机上的文件。

我在使用 ie11 时遇到了一些问题。我知道 download 属性在 ie11 上不起作用,因此我们使用 blob 并且跨浏览器下载时一切正常,但我不确定如何更改 ie11 中的文件名。

在所有其他浏览器中,我只是<a href="#" :download="new_file_name">在vue组件中调用一个小文件名计算方法,但这不适用于ie11,因为“下载”属性在那里不起作用。

有人知道如何在 ie11 中编辑该名称吗?我只是找到一般修复下载功能的答案,与设置文件名无关。

谢谢!

你必须做类似于https://github.com/kennethjiang/js-file-download/blob/master/file-download.js

的事情
function downloadFile (data, filename, mime) {
    const blob = new Blob([data], { type: mime || 'application/octet-stream' })
    if (typeof window.navigator.msSaveBlob !== 'undefined') {
      // For IE
      window.navigator.msSaveBlob(blob, filename)
    } else {
      // For other browsers
      const blobURL = window.URL.createObjectURL(blob)
      const tempLink = document.createElement('a')
      tempLink.style.display = 'none'
      tempLink.href = blobURL
      tempLink.setAttribute('download', filename)

      if (typeof tempLink.download === 'undefined') {
        tempLink.setAttribute('target', '_blank')
      }

      document.body.appendChild(tempLink)
      tempLink.click()
      document.body.removeChild(tempLink)
      window.URL.revokeObjectURL(blobURL)
    }
  }