JavaScript创建文件并将其保存到本地文件系统

时间:2013-08-17 00:27:30

标签: javascript html5 file filewriter

我正在构建一个网站并计划将一些数据保存到本地文件系统(Windows)。数据将通过AJAX方法从服务器端PHP代码返回。一旦JavaScript收到回显数据,数据将被写入新创建的本地文件。我想知道如何实现该功能。在线发现的示例(http://www.html5rocks.com/en/tutorials/file/filesystem/)使用以下API:

function onInitFs(fs) {

fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

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

  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(['Lorem Ipsum'], {type: 'text/plain'});

  fileWriter.write(blob);

  }, errorHandler);

 }, errorHandler);

}

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

虽然这段JavaScript代码没有错误,但新创建的文件“log.txt”无处可寻。即使我在代码中将其重命名为唯一名称,我仍然找不到该文件。

2 个答案:

答案 0 :(得分:0)

我刚测试过它,谷歌没有创建名为log.txt的文件(但该文件可以通过File-API使用此名称访问)。

对于我(WinXP),该文件位于

 %LOCALAPPDATA%/Google/Chrome/User Data/Default/FileSystem/

您会发现一些以数字命名的文件夹,这些文件夹中可能包含2个名为tp的文件夹。 您已在t - 文件夹中搜索(因为您已使用window.TEMPORARY

在t文件夹中还有一个由数字命名的文件夹,其中包含以数字命名的文件。这些文件是存储的文件。

对我而言,例如

%LOCALAPPDATA%/Google/Chrome/User Data/Default/FileSystem/000/t/00/00000000

答案 1 :(得分:0)

要查看在Chrome中创建的文件,您可以使用文件系统资源管理器插件:

https://chrome.google.com/webstore/detail/html5-filesystem-explorer/nhnjmpbdkieehidddbaeajffijockaea

虽然我已经使用过该插件,但我并不依赖于它的开发,因此如果您信任它足以在本地安装它,那么您必须自己决定。祝你好运!