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

时间:2016-03-13 11:57:24

标签: javascript google-chrome google-chrome-extension html5-filesystem

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

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,最后找到了一个简单的解决方法,可以从Chrome扩展程序中读取下载文件的内容。

您只需在清单文件中添加file://*权限,并在系统中拥有文件路径(filename属性中chrome.downloads.search) ,对网址file://{filepath}进行GET XMLHttpRequest。

答案 1 :(得分:0)

不,Downloads API不提供访问文件内容的方法。

最接近拦截的是WebRequest API,但目前doesn't allow response access也是。

您可以做的最多的事情是使用webRequest捕获请求,取消它并自己尝试XHR,将结果存储在一些临时位置,如上面提到的FileSystem API。这可能是一个糟糕的用户体验(原始请求无法解释)并且可能无法在所有情况下工作(因为XHR无法将所有标头设置为完全复制请求)。

答案 2 :(得分:0)

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