【问题标题】:Javascript/HTML5 - simple File system not workingJavascript/HTML5 - 简单的文件系统不工作
【发布时间】:2013-07-02 21:47:50
【问题描述】:

我决定尝试 HTML5 文件系统 API,因此我从教程中输入了一个简单的示例:

window.addEventListener('load', function () {

    window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

    function initFs (fs) {
        console.log(fs);
    }

    function fsErr (err) {
        console.log(err);
    }

    window.requestFileSystem(window.TEMPORARY, 5*1024*1024, initFs, fsErr);

});

当我运行它时,它记录了一个 FileError 对象(代码为 2)。另外,我使用的是windows(我这么说是因为我认为这可能与系统安全有关)

感谢任何帮助!

【问题讨论】:

  • 页面url是否以地址栏中的“http”开头?
  • 这是我PC上的本地文件,所以不是,页面url以File:///开头
  • 这可能行不通,使用网络服务器再试一次;代码一目了然...
  • 好的。为什么它需要在服务器上运行?这只是客户端代码。

标签: javascript html html5-filesystem


【解决方案1】:

您看到的错误是SECURITY_ERROR。有关详细信息,请参阅:https://developer.mozilla.org/en-US/docs/Web/API/FileError?redirectlocale=en-US&redirectslug=DOM%2FFileError。这是因为您使用的是file: 协议。您有两种解决方法:

  1. 从(本地)网络服务器提供文件。
  2. 使用 Chrome 并使用 --allow-file-access-from-files 标志启动。

通常,文件系统旨在访问沙盒化的本地文件,因此您不能只访问磁盘上的任何文件(这将是一个巨大的安全漏洞)。所以,你不能只读/写C:\My Documents\my_credit_card_numbers.txt。

HTML5 Rocks 上提供了一个非常棒的教程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2014-12-28
    • 2011-08-03
    • 2013-10-13
    • 1970-01-01
    • 2022-06-20
    • 1970-01-01
    相关资源
    最近更新 更多