我正在开发用作内部工具的 Chrome 扩展程序。其所需的行为是:
- 作为页面操作,在查看某些 Intranet 页面时启用地址栏图标。
- 当用户单击该图标时,识别页面上特定媒体类型(例如 .jpg)的所有文件,以及
- 默默地将它们全部保存到用户本地驱动器上的目录中。
以前有人问过这个问题,但当时的答案是“使用 NPAPI ”,现在 NPAPI 已废弃。
那么,目前可用的方法是什么?我看过的有:
- 该chrome.FileSystem API ---但这不保存任何用户访问的位置的文件。相反,存储的文件隐藏在未记录目录中的混淆名称后面。用户要求文件以其原始名称存储在可访问的目录中。
- HTML5 下载属性,通过创建 data: URL 并以编程方式单击它。这会为每个文件弹出一个“另存为...”对话框,当单个页面上有一百个资产时,这是不可接受的。用户要求下载文件时,除了单击单个图标外,无需进一步交互。
- 该浏览器下载API,但那只是在测试和开发渠道提供。用户需要此扩展程序与主流 Chrome 一起使用。
- 通过创建一个小的 .exe 来使用Native Messaging API,该 .exe 只是将文件保存到磁盘,然后将 .jpg 作为 blob 传递给它。这看起来很麻烦,我什至不确定如何可靠地将大 blob 传递给这样的 EXE。
我可以尝试另一种方法吗?