相关疑难解决方法(0)

Chrome扩展程序如何将许多文件保存到用户指定的目录中?

我正在使用Chrome扩展程序作为内部工具.它的必要行为是:

  1. 作为页面操作,在查看某些Intranet页面时启用地址栏图标.
  2. 当用户点击该图标时,识别页面上某种媒体类型(例如,.jpg)的所有文件,以及
  3. 将它们全部保存到用户本地驱动器上的目录中.

之前已经问过这个问题,但答案是" 使用NPAPI ",而NPAPI现在已经废弃了.

那么,目前实现这一目标的方法是什么?我看过的是:

  • chrome.FileSystem API ---但是这并不在任何用户访问的位置保存文件.相反,存储的文件隐藏在未记录的目录中的混淆名称后面.用户要求将文件以其原始名称存储在可访问的目录中.
  • HTML5下载属性,通过创建数据:URL并以编程方式单击它.这会为每个文件弹出一个"另存为..."对话框,当单个页面上有一百个资产时,这是不可接受的.用户要求在单个图标点击之外下载文件而无需进一步交互.
  • 浏览器下载API,但那只是在测试和开发渠道提供.用户需要此扩展程序与主流Chrome一起使用.
  • 通过创建一个只将文件保存到磁盘的小型.exe,然后将.jpg作为blob传递给它,使用Native Messaging API.这看起来非常麻烦,我甚至不确定如何可靠地将大blob传递给这样的EXE.

我可以尝试另一种方法吗?

javascript google-chrome google-chrome-extension

68
推荐指数
2
解决办法
3万
查看次数

window.requestFileSystem()函数的简单示例

我有下一个问题:我尝试window.requestFileSystem()在Chrome中使用功能,但它失败了.寻找我的步骤:

1)我在Chrome中添加了"允许从文件访问文件"标志(请参阅img bellow):在此输入图像描述

2)我重新启动了系统.

3)然后我用'允许文件访问文件'标志运行Chrome.

4)毕竟我尝试启动此示例代码:

function onInitFs(fs) {
  console.log('Opened file system: ' + fs.name);
}

    function errorHandler(e)
{
    console.log("Error");
}    
    window.requestFileSystem(window.TEMPORARY, 5*1024*1024 /*5MB*/, onInitFs, errorHandler);
Run Code Online (Sandbox Code Playgroud)

但它失败了: 在此输入图像描述

我的行为有什么问题?

javascript jquery google-chrome google-chrome-devtools

4
推荐指数
1
解决办法
3万
查看次数