【问题标题】:File API, programaticly download file from server and store it in sandboxed file systemFile API,以编程方式从服务器下载文件并将其存储在沙盒文件系统中
【发布时间】:2012-12-24 15:06:19
【问题描述】:

有没有办法以编程方式从服务器下载文件(用户单击网络应用程序中的保存按钮)和浏览器(支持文件 API)或设备将下载文件并将其保存在其沙盒文件系统中?我正在查看 HTML5 文件 API。我可以创建或修改文件并存储它,但首先我需要从服务器获取文件。简单地说,我想避免另存为弹出窗口,我希望文件保留在 Web 应用程序的沙盒文件系统中。 欢迎任何我可以查看的建议。

【问题讨论】:

    标签: javascript html fileapi


    【解决方案1】:

    您想要 XMLHttpRequest(),尽管它的名字,它可以处理下载所有类型的数据,包括二进制。如果将 responseType 设置为“arraybuffer”,则可以将其转换为 blob 并轻松保存到文件系统中。

    HTML5Rocks 有一个很棒的教程,应该涵盖您需要的所有内容: New Tricks in XMLHttpRequest

    (我知道这个问题有点老了,但我只是在寻找如何做同样的事情,这是弹出的第一个结果,所以我想我会分享)

    【讨论】:

      【解决方案2】:

      下载文件最简单的方法就是window.open 指向它的URL。这将提示用户选择保存文件的位置。

      除此之外,您无能为力;浏览器会非常小心地保护其用户的文件系统。

      【讨论】:

      • 是的,我知道,这就是使用 File API 和沙盒文件系统的原因之一。该文件不存储在用户的文件系统中。
      • 我不太确定您所说的“沙盒文件系统”是什么意思;这样的事情在浏览器/网络世界中不存在。如果你想要这样的东西,你需要比浏览器允许的更高级别的控制,这意味着你需要 Flash、Java 小程序、浏览器插件或类似的东西。
      • 我知道这只是草稿,我认为目前只有 chrome 支持。
      • 啊;其他浏览器确实支持它,但是它还没有完全支持(caniuse.com/#search=file%20API)。在这种情况下,我能提供的最好的方法是:developer.mozilla.org/en-US/docs/…
      猜你喜欢
      • 2012-11-25
      • 2011-12-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多