在Chrome打包应用中替换fileEntry.toURL()

时间:2013-05-06 16:10:04

标签: google-chrome fileapi google-chrome-app html5-filesystem

我使用HTML5 FileSystem API中的Chrome Packaged App写入日志文件。我希望用户能够下载此文件,因此我尝试了以下方面的内容:

fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
  var url = fileEntry.toURL();
  // do something with the file url
});

这并没有帮助,因为网址类似于filesystem:chrome-extension://eekedjcagggbfigdmifkmhkjbhiklnpj/temporary/log.txt,而且无法在某处开启。

您建议使用哪种技术在Packaged App中下载FileSystem API文件?

编辑:在阅读下面的Ben Well的answer之后,我意识到我必须更多地澄清我想要的东西。如果有一种技术并不意味着加载HTML5 Filesystem API文件内容,从中构建blob并将其写入用户选择的chrome.fileSystem API路径,那对我来说似乎特别好。 / p>

1 个答案:

答案 0 :(得分:4)

您是否尝试过使用chrome.fileSystem.chooseEntry?此API允许您的应用程序将文件保存到用户的硬盘中,无论他们想要什么,让您的程序具有“另存为”命令。这与下载链接略有不同,但与V2应用程序更像是本机应用程序。

chrome.fileSystem弹出一个对话框,要求用户选择文件的位置。如果使用保存文件的选项,则会返回一个文件条目,该条目具有写入用户所选位置的权限。用户还可以在使用这些选项时创建新文件。