编辑 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)
}
}
我当前的项目需要下载文件。该文件是自动生成的,并且在保存时有一个不友好的名称,因此我们正在将文件名更改为在下载时更容易阅读的名称。
例如,如果用户下载了一个名为 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)
}
}