Chrome扩展程序:获取下载文件的内容

时间:2019-02-26 20:55:07

标签: file pdf google-chrome-extension local

是否可以选择以Google chrome打开的本地(下载)pdf文件的内容?

最近几年如此运作:

用户使用谷歌浏览器打开pdf文件。然后,他在Chrome浏览器中点击我的扩展程序。 我的扩展程序将本地pdf文件“下载”到了chrome downloads文件夹。 然后,我的扩展程序通过HTTPRequest读取下载文件的内容

var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
	
	var pdfblob = (this.response);	

};

...但是现在大约有5天了,这将不再起作用。我收到此错误:

获取文件:/// C:/Users/Standard/Downloads/test.pdf网址:: ERR_UNKNOWN_URL_SCHEME

知道有人可以解决此问题吗? 也许我可以在下载文件时读取文件内容?

托马斯

更新 我现在尝试使用此代码:

var xhr = new XMLHttpRequest();

xhr.open('GET', 'file:///C:/Users/Standard/GoogleDrive/Dropbox/FLIESENLEGER.pdf', true);
xhr.responseType = 'blob';

xhr.onload = function(e) {
	
	var pdfblob = (this.response);	

    console.log(pdfblob);


};

manifest.json:

{
"update_url": "https://clients2.google.com/service/update2/crx",

  "manifest_version": 2,


"permissions": [
"activeTab",
"file://*",
"http://www.pdfzorro.com/",
"https://www.pdfzorro.com/",
"https://www.google.com/",
"downloads",
"file://*"
],


  "name": "Save to Google Drive™",
  "version": "0.0.0.20",
  "short_name": "Save to a folder on Google Drive™",
  "description": "Save PDF, images or webpages - opened in Chrome -  to your Google Drive™. You can select a folder where the file should be saved.",
  "icons": { "16": "logo16.png",
          "128": "logo.png" },  
  

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  }

  
}

1 个答案:

答案 0 :(得分:0)

您必须启用对扩展名中文件URL的访问,还必须在清单文件中添加file:///权限。

添加到manifest.json

{
  "permissions": [
    // other permissions
    "file:///"
  ]
}

转到chrome://extensions/,单击扩展详细信息按钮,然后选中Allow access to file URLs选项。

您必须警告您的扩展程序用户以选中此选项!

enter image description here

除此之外,您可以使用chrome.downloads获取有关下载文件的信息,例如文件路径,大小等。