如何使用文本在JavaScript中创建文件

时间:2017-08-21 04:45:07

标签: javascript html

我正在编写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文件。 如何使用此代码更改文件类型?

1 个答案:

答案 0 :(得分:0)

将文件扩展名添加到文件名中。喜欢这个

a.download = filename + ".txt";

查看文档Blob对象为type属性采用'plain / text'来指定文本,这可能是你应该关注的事情,将Blob声明更改为

var file = new Blob([data], {type: 'plain/text'});