17

我正在玩一些FileSystem API

我发现了很多示例,您可以在其中生成下载链接并让用户以“浏览器方式”下载文件。

我想知道两件事:

  1. 有没有办法将小提琴中的ajax结果作为文件直接写入磁盘(没有任何类型的提示)。以用户的桌面为例。

  2. blob 是最合适的格式吗?

http://jsfiddle.net/FBGDe/

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        console.log(this.response, typeof this.response);
        var img = document.getElementById('img');
        var url = window.URL = window.webkitURL;
        img.src = url.createObjectURL(this.response);
    }
}
xhr.open('GET', 'http://www.newyorker.com/online/blogs/photobooth
                                                       /NASAEarth-01.jpg');
xhr.responseType = 'blob';
xhr.send();      
4

2 回答 2

14

请注意,文件系统 API 不再是标准规范的一部分,如下所示: http ://www.w3.org/TR/file-system-api/

编辑:引用规范以防链接更改:“文件 API:目录和系统 W3C 工作组说明 2014 年 4 月 24 日

本文档的工作已停止,不应被引用或用作实施的基础。"

(这与问题没有直接关系,但必须知道不要进一步使用 FileSystem API。)

另一个链接: http ://www.html5rocks.com/en/tutorials/file/filesystem/

“2014 年 4 月,在 public-webapps 上宣布 Filesystem API 规范应该被认为是死的。其他浏览器对实现它几乎没有兴趣。”

于 2014-04-28T18:29:39.310 回答
9

不幸的是,目前无法写入常规文件(尽管已接受答案Modifying Local Files Using HTML5 and JavaScript)。

您只能写入沙盒文件系统。

仅供参考,您可以在 Chrome 打包应用程序中执行此操作:http: //developer.chrome.com/apps/fileSystem.html但即便如此,用户至少必须先选择文件。写入任何文件都将是一个严重的安全漏洞。

你真正想解决什么问题?

于 2013-11-02T16:42:05.250 回答