在 Chrome 中下载后访问文件数据...?

Gia*_*ava 6 javascript google-chrome google-chrome-extension html5-filesystem

我正在编写一个扩展程序,它可以在下载文件后(通过正常的下载过程)理想地读取文件。那可能吗?我可以通过 chrome.downloads 操作获取文件名,但我找不到读取实际字节的方法。我不需要写或移动它们,只需阅读。

Whi*_*ngs 7

我在完全相同的问题上苦苦挣扎,终于找到了一种简单的解决方法来从 Chrome 扩展程序读取下载文件的内容。

你只需要file://*在你的清单文件中添加一个权限,一旦你在系统中拥有文件的路径(chrome.downloads.searchfilename属性中),就向 url 发出一个 GET XMLHttpRequest file://{filepath}

  • 您不需要比“downloads”和“file://*”更多的权限。至于 xhr 请求,要小心,因为您检索的可能是 Blob 数据。这是我的请求示例代码:`var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (this.readyState == 4) { file.blobData = this.response; } } xhr.open('GET', "file://" + file.filename); xhr.responseType = 'blob'; xhr.send();` (2认同)
  • 根据 https://wiki.mozilla.org/WebExtensions/Filesystem#Accessing_file:.2F.2F_in_tabs_and_content_scripts,我认为 FireFox 可能故意不支持它 (2认同)