Расширение Google - Отправить локальный файл с помощью запроса POST в Javascript? - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу разработать расширение Google Chrome, которое загружает PDF-файл с сервера, а затем загружает его непосредственно на другую страницу.Скачать документ было легко.Однако загрузка кажется более сложной.Мне нужно получить доступ к моему локальному файловому обозревателю, кэшировать файл в коде и затем отправить его через запрос POST.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 24 сентября 2019

Я нашел решение с HTML5 Файловая система .Полученный Файловый объект является типом BLOB-объекта, который можно отправить через XMLHttpRequest.Хотя по какой-то причине это не сработало, я добавил его в FormData, который, как я знал, работал.Недостатком является то, что он работает только в корневом каталоге расширения.

    chrome.runtime.getPackageDirectoryEntry(function (root) {
            root.getFile("myFile.pdf", {}, function (fileEntry) {
                fileEntry.file(function (file) {
                    var formData = new FormData();
                    formData.append("file", file);
                    var http = new XMLHttpRequest();
                    var url = 'myUrl';
                    http.open('POST', url, true);  
                    http.onreadystatechange = function () {
                        if (http.readyState == 4 && http.status == 200) {
                            alert(http.responseText);
                        }
                    }
                    http.send(formData);
                });
            });   
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...