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

Accessing file data after download in Chrome...?

本文关键字:访问 文件 数据 下载 Chrome      更新时间:2023-09-26

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

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

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

否,下载 API 不提供访问文件内容的方法。

最接近拦截的是WebRequest API,但目前也不允许响应访问。

您最多能做的就是用webRequest捕获请求,取消它并尝试自己进行 XHR,将结果存储在某个临时位置,例如提到的文件系统 API。不过,这将是一个糟糕的用户体验(原始请求莫名其妙地失败),并且可能无法在所有情况下都有效(因为 XHR 无法将所有标头设置为完全复制请求)。

WhiteFangs的解决方案对我有用。但是,我应该补充一点,即使用文件协议的 XMLHttpRequest 仅在我从后台脚本启动它时才对我有用。当我从内容脚本或浏览器操作的 javascript 环境中尝试它时,我遇到了错误。