Расширение Chrome: получение содержимого загруженного файла. - PullRequest
0 голосов
/ 26 февраля 2019

есть ли возможность получить содержимое локального (загруженного) файла PDF, который открывается в Google Chrome?

В последние годы он работает так:

Пользователь открывает файл PDF сГугл Хром.Затем он щелкает мое расширение в браузере Chrome.Мое расширение "загрузило" локальный файл PDF в папку загрузок Chrome.Затем мое расширение читает содержимое скачанного файла через HTTPRequest

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

};

... но теперь, примерно через 5 дней, это больше не будет работать.Я получаю эту ошибку:

GET-файл: /// C: /Users/Standard/Downloads/test.pdf net :: 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 голосов
/ 27 февраля 2019

Вам необходимо разрешить доступ к URL-адресам файлов в вашем расширении, а также добавить разрешение file:/// в файл манифеста.

Добавить в manifest.json

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

Перейти к chrome://extensions/, нажмите кнопку сведений о добавочном номере и установите флажок Allow access to file URLs.

Вам нужно будет предупредить пользователей добавочного номера, чтобы проверить этот параметр!

enter image description here

В дополнение к этому вы можете использовать chrome.downloads для получения информации о загруженных файлах, такой как путь к файлу, размер и т. Д.

...