Chrome Расширение - Можно ли программно управлять вводом файлов? - PullRequest
0 голосов
/ 16 марта 2020

То, что делает мое расширение - это публикация одного сообщения в блоге на нескольких сайтах. Сайты допускают загрузку изображений через <input type="file"/>.
. Я хотел бы, чтобы пользователь загружал изображение один раз в пользовательский интерфейс extn, а затем программа extn программно \ автоматически размещала это изображение в нескольких сообщениях в блоге. У моего extn уже есть изображение, доступное как строка base64. Я хочу предоставить это изображение на сайт, без необходимости выбирать изображение вручную с диска. Возможно ли это как-то с помощью Chrome расширений API?

1 Ответ

0 голосов
/ 18 марта 2020

Нет, это невозможно. Поскольку окно «Выбрать файл» принадлежит ОС, а расширение chrome имеет нулевой контроль над ним.

Однако я обнаружил, что могу добиться того, что мне нужно, превратив свой base64 string в Blob, а затем отправьте его как часть объекта FormData в запросе http. Работает просто отлично.

Вот рабочий пример:

// Create blob.
const url = "data:image/jpeg;base64,/9j/4RiDRXhpZgAATU0AKgA...";
const blob = (await fetch(url)).blob()

// Create form data.
const formData = new FormData()
formData.append('file', blob, 'image.jpg')

// Send blob to a server that expects a file
fetch('https://server.url', {method: 'POST', body: formData})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...