Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перехватить файл из веб-запроса Chrome onBeforeRequest (https://javascript.ru/forum/events/77614-perekhvatit-fajjl-iz-veb-zaprosa-chrome-onbeforerequest.html)

Commodore 27.05.2019 22:04

Перехватить файл из веб-запроса Chrome onBeforeRequest
 
Я хочу получить файлы, которые загружаются через POST. К сожалению, я получаю requestBody как FormData, что делает невозможным доступе к файлу. Я получаю только имя файла в виде строки .... Мне нужно изменить содержимое файла и отправить его на сервер, то-есть перехватить его. На клиенте установлено расширение и весь скрипт работает в background.js. Как я бы мог сделать это?

Alexandroppolus 27.05.2019 22:29

Цитата:

Сообщение от Commodore
я получаю requestBody как FormData, что делает невозможным доступе к файлу.

Навскидку:
var f = formData.get('file'); // получили файл, 'file' - имя поля формы

// дальше с помощью FileReader читаем файл, 
// например, как строку или как файловый массив

// с полученными данными что-то делаем, получаем новые данные в переменную newData

var newFile = new Blob([newData]); // новый файл

formData.set('file', newFile, f.name);


https://developer.mozilla.org/en-US/...b/API/FormData
https://developer.mozilla.org/ru/docs/Web/API/Blob/Blob

Commodore 28.05.2019 21:15

Получается этот скрипт изменяет содержимое
тега input=file значения files?

Malleys 28.05.2019 21:28

Цитата:

Сообщение от Commodore
тега input=file значения files?

Нет, оно только меняет данные поля file у formData.

Commodore 29.05.2019 10:26

Но изменять данные body в onbeforerequest нельзя https://code.google.com/p/chromium/i...etail?id=91191
Смогу ли я заблокировать текущий запрос и отправить поддельный?


Часовой пояс GMT +3, время: 15:57.