我正在编写JavaScript代码以启动浏览器中的文件下载。我能够在字符串中获取文件的字节,并且我想将字符串传递给创建文件并从中启动下载的函数。
我必须避免将文件存储在服务器上,以便有人通过html下载:
<a href="./some-file.pdf">file</a>
这是我到目前为止的代码,它的工作正常,但我需要修改文件的扩展名以更改它以匹配数据,这是我不知道的部分。
function download(data, filename = "aserc", type = ".txt") {
var file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob)
{
window.navigator.msSaveOrOpenBlob(file, filename);
} else {
var a = document.createElement("a"), url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(() => {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
}
}
这将下载一个文件,但它不是.txt文件。 如何使用此代码更改文件类型?
答案 0 :(得分:0)
将文件扩展名添加到文件名中。喜欢这个
a.download = filename + ".txt";
查看文档Blob对象为type属性采用'plain / text'来指定文本,这可能是你应该关注的事情,将Blob声明更改为
var file = new Blob([data], {type: 'plain/text'});