使用HTML5 FileSystem API将文件写入桌面

Joh*_*han 16 javascript html5 fileapi

我正在玩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();      
Run Code Online (Sandbox Code Playgroud)

Apa*_*ram 13

请注意,Filesystem 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规范应该被认为已经死亡.其他浏览器对实现它没有兴趣."

  • 完全相同的 [end for Web SQL Databases](https://softwareengineering.stackexchange.com/q/220254/236257) 以及已弃用。对于离线 web 应用,我相信 [Indexed DB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB) 和 [web storage](https://developer.mozilla. org/en-US/docs/Web/API/Web_Storage_API) 是剩下的选项。 (2认同)

Pau*_*per 9

不幸的是,目前无法写入常规文件(尽管已接受答案使用HTML5和JavaScript修改本地文件).

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

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

你真的想解决什么问题?