Javascript 使用HTML5文件系统API将文件写入桌面

Javascript 使用HTML5文件系统API将文件写入桌面,javascript,html,fileapi,Javascript,Html,Fileapi,我在和你玩一玩 我发现了很多例子,其中你生成了一个下载链接,让用户以“浏览器方式”下载文件 我想知道两件事: 有没有办法将fiddle中的ajax结果作为文件直接写入磁盘(无需任何类型的提示)。例如,像用户的桌面 blob是最合适的格式吗 不幸的是,目前无法写入常规文件(尽管答案已被接受) 您只能写入沙盒文件系统 仅供参考,您可以在Chrome打包的应用程序中执行此操作:但即使如此,用户至少必须首先选择文件。写入任何文件都将是一个严重的安全漏洞 您真正想解决的问题是什么?请注意,文件系统API

我在和你玩一玩

我发现了很多例子,其中你生成了一个下载链接,让用户以“浏览器方式”下载文件

我想知道两件事:

  • 有没有办法将fiddle中的ajax结果作为文件直接写入磁盘(无需任何类型的提示)。例如,像用户的桌面

  • blob是最合适的格式吗


  • 不幸的是,目前无法写入常规文件(尽管答案已被接受)

    您只能写入沙盒文件系统

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


    您真正想解决的问题是什么?

    请注意,文件系统API不再是标准规范的一部分,具体说明如下:

    编辑: 在链路发生变化时引用规范: “文件API:目录和系统 W3C工作组说明2014年4月24日

    关于本文件的工作已停止,不应引用或用作实施的依据。

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

    另一个链接:


    “2014年4月,在公共webapps上宣布,文件系统API规范应该被视为已过时。其他浏览器对实现它几乎没有兴趣。”

    “没有任何提示”。这将是一个严重的安全问题。您可以使用将命名文件保存到下载文件夹,而无需提示。如果您尝试下载一组文件,chrome将在每个会话中请求批准一次。@11684我认为您可以使用此API删除文件,而无需提示。我认为这是一个更大的安全问题context@dandavis谢谢,我会照顾你的that@Johan,不可以,因为使用此API,您只能删除网站放在那里的文件。如何?谢谢您,很抱歉您的评论太晚。我想让用户标记一堆文件>选择一个文件夹>按下载,让浏览器同时下载它们。但是我想把它们压缩到服务器端并按常规方式下载会更容易一些。我只是想详细说明一下,我不想写入现有文件,我想创建一个新文件。但我想这就是你所指的?约翰,你得闭嘴了。无论是新文件还是现有文件,都有相同的限制。@PaulDraper,这是一个老话题,但我要解决的问题是一个基于JavaScript的应用程序,它需要在客户端创建虚拟SQL数据。比如说,一个包含10000个虚拟名称的CSv文件。为了避免用户通过互联网下载一个大文件,我正在尝试通过javascript在客户端创建它。好的,我将添加详细信息,而不仅仅是链接。谢谢。和被弃用的完全一样。对于离线web应用程序,我认为和是剩下的选项。
    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();