File 使用angular 2重命名保存到文件系统的文件
我想将从服务器下载的blob保存到文件系统中,因此我使用File 使用angular 2重命名保存到文件系统的文件,file,angular,typescript,blob,File,Angular,Typescript,Blob,我想将从服务器下载的blob保存到文件系统中,因此我使用 window.open( window.URL.createObjectURL(myBlob)); 为了拯救它。但当我这样做时,保存的文件会得到一个完全混乱的随机名称。 有没有办法给保存的文件起我自己的名字 编辑: 服务器端如下所示(Spring数据REST控制器): 我自己也在寻找类似的答案,并找到了几种保存下载文件的方法 在您的情况下,您可以使用的下载属性。例如,可以在单击按钮时动态添加此元素,并以编程方式执行单击事件 var
window.open( window.URL.createObjectURL(myBlob));
为了拯救它。但当我这样做时,保存的文件会得到一个完全混乱的随机名称。
有没有办法给保存的文件起我自己的名字 编辑: 服务器端如下所示(Spring数据REST控制器):
我自己也在寻找类似的答案,并找到了几种保存下载文件的方法 在您的情况下,您可以使用
的下载属性。例如,可以在单击按钮时动态添加此元素,并以编程方式执行单击事件
var a = document.createElement("a"),
fileURL = URL.createObjectURL(blob);
a.style = "display:none";
a.href = fileURL;
a.download = fileName;
window.document.body.appendChild(a);
a.click();
window.document.body.removeChild(a);
URL.revokeObjectURL(fileURL);
下载
属性仅具有最近的支持:
对于旧版本的IE,请使用
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveOrOpenBlob(blob, fileName);
}
您是否在服务器端的响应头中设置文件名?这是什么意思?使用window.open()时如何设置这些设置?抱歉,我假设您也控制了服务器端。事实上,我更新了我的问题,我会尝试一下。没有运气,没有任何事情发生,没有错误消息,也没有下载提示
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveOrOpenBlob(blob, fileName);
}