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