【问题标题】:Where can I see my stored data using FileSystem API?我在哪里可以使用 FileSystem API 查看我存储的数据?
【发布时间】:2012-11-16 00:02:37
【问题描述】:

我已经使用 HTML5 提供的 FILESYSTEM API 成功存储了数据。但是我不知道在哪里可以识别本地存储库中的文件,以便备份存储的数据。我还检查了服务器(Tomcat 7.0)中应用程序的根目录,但找不到该文件。在使用 chrome 开发者工具时,我检查了数据是否存储成功。

代码如下:

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

            function onInitFs(fs)
            {
                fs.root.getFile('fpslog.txt', {create: false}, function(fileEntry) {

                        // Create a FileWriter object for our FileEntry (log.txt).
                        fileEntry.createWriter(function(fileWriter) {

                          fileWriter.seek(fileWriter.length); // Start write position at EOF.

                             fileWriter.onwriteend = function(e) {
                              console.log('Write completed.');
                            };

                              fileWriter.onerror = function(e) {
                              console.log('Write failed: ' + e.toString());
                            };

                          // Create a new Blob and write it to log.txt.
                          var blob = new Blob(['Hello World'], {type: 'text/plain'});

                          fileWriter.write(blob);

                        }, errorHandler);

                      }, errorHandler);

            }

            window.requestFileSystem(window.TEMPORARY, 5*1024*1024 /*5MB*/, onInitFs, errorHandler);

以及 ERROR 函数:

function errorHandler(e) {
                  var msg = '';

                  switch (e.code) {
                    case FileError.QUOTA_EXCEEDED_ERR:
                      msg = 'QUOTA_EXCEEDED_ERR';
                      break;
                    case FileError.NOT_FOUND_ERR:
                      msg = 'NOT_FOUND_ERR';
                      break;
                    case FileError.SECURITY_ERR:
                      msg = 'SECURITY_ERR';
                      break;
                    case FileError.INVALID_MODIFICATION_ERR:
                      msg = 'INVALID_MODIFICATION_ERR';
                      break;
                    case FileError.INVALID_STATE_ERR:
                      msg = 'INVALID_STATE_ERR';
                      break;
                    default:
                      msg = 'Unknown Error';
                      break;
                  };

                  console.log('Error: ' + msg);
                }

在开发人员工具中,我确实没有看到错误打印,而是说“写入完成”,这意味着我能够在某处创建文件并存储数据。我想访问该数据以进行查看。正如教程已经提到的那样,我没有看到在根文件夹中创建任何文件。请提供任何帮助。

【问题讨论】:

  • @E-Riz,我想知道如何使用 Blob 存储浮点数、整数值。如何在 Blob 数据的一个插入和另一个插入之间添加空间到文件中。请任何帮助..

标签: html google-chrome filesystems storing-data


【解决方案1】:

您还可以使用根目录的filesystem: URL 查看文件。打开 地址栏中的filesystem:<YOUR_ORIGIN>/temporary/,替换为您的应用运行的来源(例如“http://stackoverflow.com”)。

您还可以在 DevTools 中的实验下启用“文件系统检查”。这可能还需要您在about:flags 中“启用实验性 DevTools 功能”。

【讨论】:

  • 如何使用 FileSystem API 通过 Blob 动态存储整数和小数?一个示例 sn-p 会很有帮助。
  • 您不能将数字存储在 .txt/.json 文件中并使用FilesystemFileReader API 将它们读回吗?此外,您可以存储一个序列化的值数组,并将JSON.parse() 读取后的数据返回到 JS。
  • 我只想将值动态存储在本地存储库中。稍后,我希望这些值绘制图表。对于这种情况,我找不到任何解决方案。使用 FileSystem API,在动态存储从 javascript 函数返回的值的同时,Blob 存储整个函数,而不是存储从函数返回的值。例如: var blob = new Blob(['值是:', +getValues()]); flywriter.write(blob);在上述场景中,它存储的不是存储值(函数 getvalues() { return value; } )。有什么解决办法吗?
【解决方案2】:

我找到了方法,使用 google chrome plugin 可以帮助您查看 HTML5 的文件系统 API 的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多