Vue.js 编辑ie11文件的下载名称

Vue.js 编辑ie11文件的下载名称,vue.js,download,internet-explorer-11,filenames,Vue.js,Download,Internet Explorer 11,Filenames,我当前的项目需要下载文件。文件是自动生成的,保存时有一个不友好的名称,因此我们正在将文件名更改为下载时更容易阅读的名称 例如,如果用户下载了一个名为32434342342.pdf的文件,我们会将其更改为Lesson1.pdf或保存在其计算机上的文件 我在ie11上遇到了一些麻烦。我知道download属性在ie11上不起作用,因此出于这个原因,我们使用BLOB,并且在不同浏览器之间进行下载时工作正常,但我不确定如何在ie11中更改文件名 在所有其他浏览器中,我只是调用vue组件中的一个小文件名计

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

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

我在ie11上遇到了一些麻烦。我知道download属性在ie11上不起作用,因此出于这个原因,我们使用BLOB,并且在不同浏览器之间进行下载时工作正常,但我不确定如何在ie11中更改文件名

在所有其他浏览器中,我只是调用vue组件中的一个小文件名计算方法,但这对ie11不起作用,因为“下载”属性在那里不起作用

有人知道如何在ie11中编辑这个名字吗?我只是在寻找修复下载功能的答案,而不是设置文件名


谢谢大家!

你必须做类似的事情

函数下载文件(数据、文件名、mime){
const blob=new blob([data],{type:mime | |'application/octet stream'})
if(typeof window.navigator.msSaveBlob!=“未定义”){
//对于IE
window.navigator.msSaveBlob(blob,文件名)
}否则{
//对于其他浏览器
const blobURL=window.URL.createObjectURL(blob)
const tempLink=document.createElement('a')
tempLink.style.display='none'
tempLink.href=blobURL
setAttribute('download',filename)
if(typeof tempLink.download==‘未定义’){
setAttribute('target','u blank')
}
document.body.appendChild(tempLink)
tempLink.click()
document.body.removeChild(tempLink)
window.URL.revokeObjectURL(blobURL)
}
}

这个答案对您有帮助吗?我赞成丹尼尔的回答。由于您已经使用blob解决了IE中的下载问题,我认为您正在使用
navigator.msSaveBlob(blob,defaultName)
函数。
defaultName
参数是保存文件时要使用的文件名,因此您可以将其更改为编辑IE 11中文件的下载名。