【问题标题】:Using JavaScript to store a file to a local machine (Downloading)使用 JavaScript 将文件存储到本地机器(下载)
【发布时间】:2014-09-02 20:22:02
【问题描述】:

我想将文件存储到本地机器。

对于 HTML5,我们可以使用 cookieslocal storage 将数据存储到本地机器。 本地存储使用key-value 对(json)来存储数据。 但是,我想以不同的格式保存数据,例如 XML。

在convertonlinefree.com等网站上,当文件被转换后,文件将自动开始下载。

所以,我正在考虑一种方法来做到这一点: 当用户单击一个按钮时,XML 文件将被自动下载。这可能吗?如果是这样,我该怎么做?

【问题讨论】:

标签: javascript download local-storage


【解决方案1】:

您可以创建不可见元素,例如a,并模拟点击它,以下载文件,check my codepen 进行演示。

重要的是:

var text = xmlContent.value;
// Create element.
a = document.createElement('a');
// Attach href attribute with value of your file.
a.setAttribute("href", "data:application/xml;charset=utf-8," + text);
// HTML5 property, to force browser to download it.
a.setAttribute("download", "my.xml");
a.click();

您可以选择将application/xml 部分替换为故意不正确的 MIME 类型,以强制浏览器下载文件而不是尝试显示它。

【讨论】:

    【解决方案2】:

    你要使用的是Data_URI_scheme,这基本上意味着你必须对你的文件进行base64编码才能下载它。

    所以这样的事情应该可以工作:

    window.location = 'data:application/xml;base64,'+ btoa("<xml>data in the file</xml>")
    

    【讨论】:

    • 你应该把它设置成一个奇怪的 mime 类型来强制下载,否则它可能会出现......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多