后台下载延迟保存到本地驱动器

时间:2013-06-16 20:46:13

标签: javascript jquery html html5 xhtml

使用JavaScript我需要在后台下载二进制文件,然后修改这些二进制数据(一些内部处理),最后提供客户端将此类文件保存到本地驱动器。

请告知我应该采用什么样的方法。

1 个答案:

答案 0 :(得分:2)

如果要在客户端处理数据,可以在最后对数据进行Base64编码并构造A元素,并为data-uri属性提供href的MIME类型集

要下载数据,您可以使用AJAX(使用jQuery或直接使用jQuery)。在这里显示jQuery example

$.ajax({
    url: "pageThatProvidesBinaryData.html",
    context: document.body
}).done(function(data) {
    processData(data);
});

(处理二进制数据时要注意编码)。

处理数据,然后你可以使用(html5):

<a href="data:my/mime;charset=uft-8;base64,<your-data>" download="Filename.ext">
Click to download</a>

my/mime替换为实际类型(即。application/octet-stream以获取通用二进制文件。)

download - 标记提供A属性将允许用户在点击链接时下载数据(如果他使用启用了html5的浏览器)。

如果您希望自动执行此操作,可以隐藏a元素并生成单击:
Is it possible to trigger a link's (or any element's) click event through JavaScript?

有关data-uris的详细信息:
https://en.wikipedia.org/wiki/Data_URI_scheme