Javascript 在Chrome应用程序中不使用“保存”对话框保存文件

Javascript 在Chrome应用程序中不使用“保存”对话框保存文件,javascript,google-chrome,google-chrome-app,Javascript,Google Chrome,Google Chrome App,在我的chrome应用程序中,我正在将一些数据写入一个文件。 我使用了官方网站上的以下代码 现在,我需要避免弹出“保存”对话框,并将此文件保存在预定义的位置 这可能吗 如果您想要持久数据,但又不想让用户担心数据在本地计算机上的位置,那么您有几个选项: 本地存储 IndexedDB HTML5文件API chrome.storage.sync 这些都不会提供用户可以访问的真实文件。如果用户(除您自己的应用程序外)需要能够访问您编写的文件,则需要询问用户将文件放在何处。正如Cerburs在对

在我的chrome应用程序中,我正在将一些数据写入一个文件。 我使用了官方网站上的以下代码

现在,我需要避免弹出“保存”对话框,并将此文件保存在预定义的位置


这可能吗

如果您想要持久数据,但又不想让用户担心数据在本地计算机上的位置,那么您有几个选项:

  • 本地存储
  • IndexedDB
  • HTML5文件API
  • chrome.storage.sync
这些都不会提供用户可以访问的真实文件。如果用户(除您自己的应用程序外)需要能够访问您编写的文件,则需要询问用户将文件放在何处。正如Cerburs在对您的问题的评论中所说,在用户机器上的某个地方悄悄地放置一个文件将是一个安全问题


Chrome 31的一个新功能是。使用此API,您的应用程序将保持在应用程序重新启动时保留大量文件项(包括目录)的能力,这样您就不必一直对用户进行窃听以选择文件位置。我的理解是,允许用户选择的位置有限制,因此恶意应用程序无法指示用户指示Chrome覆盖系统文件。

如果您想要持久数据,但不想让用户担心数据在本地计算机上的位置,您有几个选项:

  • 本地存储
  • IndexedDB
  • HTML5文件API
  • chrome.storage.sync
这些都不会提供用户可以访问的真实文件。如果用户(除您自己的应用程序外)需要能够访问您编写的文件,则需要询问用户将文件放在何处。正如Cerburs在对您的问题的评论中所说,在用户机器上的某个地方悄悄地放置一个文件将是一个安全问题


Chrome 31的一个新功能是。使用此API,您的应用程序将保持在应用程序重新启动时保留大量文件项(包括目录)的能力,这样您就不必一直对用户进行窃听以选择文件位置。据我所知,允许用户选择的位置有限制,因此恶意应用程序无法引导用户指示Chrome覆盖系统文件。

想象一下,如果能够将任何内容保存到硬盘上的任何位置,会有安全风险,没有用户的明确许可。我怀疑这是可能的。想象一下,在没有用户明确许可的情况下,可以将您想要的任何内容保存到硬盘驱动器上的任何位置,会有安全风险。我怀疑这是可能的。只是想确认一下,是否有可能以某种方式获得一个文件的访问权限,您可以在以后无需用户对话框的情况下更新该文件?这就是我对Retaintery的理解。别忘了向上投票并接受,除非这个答案中缺少什么。只是确认一下,是否有可能以某种方式获得一个文件的访问权限,您可以稍后在不使用用户对话框的情况下进行更新?这就是我对保留的理解。别忘了投赞成票并接受,除非这个答案遗漏了什么。
chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
writableFileEntry.createWriter(function(writer) {
  writer.onerror = errorHandler;
  writer.onwriteend = function(e) {
    console.log('write complete');
  };
  writer.write(new Blob(['1234567890'], {type: 'text/plain'}));  
}, errorHandler);
});