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

时间:2013-11-02 16:32:46

标签: javascript html5 fileapi

我正在玩FileSystem API

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

我想知道两件事:

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

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

  3. 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();      
    

2 个答案:

答案 0 :(得分: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规范应该被认为已经死亡。其他浏览器对实现它没有兴趣。"

答案 1 :(得分:9)

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

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

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

你真的想解决什么问题?