【发布时间】:2015-05-20 19:24:17
【问题描述】:
我正在开发一个 Chrome 扩展程序,它将文件保存到下载文件夹(这还不是全部,但这是我遇到问题的部分)。现在我专注于PDF文件。基本上,当在 Chrome 中打开 PDF 时,用户可以使用 Menu -> Save File As 手动保存它...,我只是尝试使用扩展程序自动执行此功能,但我还没有找到一个好的方法来做到这一点。
假设我可以检测当前选项卡中是否有 PDF 文件(基于来自 this 问题的答案)。
到目前为止,我认为最好的办法是启动下载:
chrome.downloads.download({
url: tabs[0].url, saveAs: false,
filename: "my file", /* This will be some unique autogenerated identifier */
conflictAction: "overwrite"
});
这可行,但有两个缺点:
- 文件必须重新下载,如果文件很大,这会很痛苦。另外,文件已经下载好了,应该可以用了。
- 由于某种原因,这不适用于本地打开的文件(“file://...”)。它会抛出 NETWORK_INVALID_REQUEST 并且不会下载。
有没有更好的方法来保存文件?
【问题讨论】:
-
我还没有找到通过 API 访问保存在设备上某处的本地文件的方法。一些解决方案指向 NPAPI,但现在已弃用。
-
@Rivero:我实际上不需要访问(读取)本地文件。我只需要将打开的 PDF 保存在某个地方并获取驱动器上的文件位置,下载 API 可以做到这一点。但是,它存在我提到的问题。
标签: javascript google-chrome pdf google-chrome-extension