Kneepy, если вам нужно сохранить картинку на сервере, это уже совсем другой вопрос. Для этого сначала картинку нужно отправить аяксом, далее на бэке принять и положить в базу данных.
WbICHA, анонимные функции не заменить конечно, про это я предупредить забыл, ну и с константой тоже не получится. Здесь я вижу 2 варианта: сделать свою кнопку, а старую скрыть или изменить сам метод xhr / fetch на свой собственный. Второй вариант наверное вполне подойдет автору вопроса, если с заменой функции не получится.
RecentForce99, ну тогда мой вариант вам вполне подойдёт, дальше уже сами допилите напильником под себя - например надо сделать блокировку кнопки на время отправки, обработку ошибок и так далее.
NooBick, суть в том, что вы можете заменить функции ВКонтакте отвечающие за совершение запросов на свои собственные функции с собственными вставками. Мне лень коврять код ВК, поэтому примеров привести не могу.
Alexandroppolus, собрал бинариник, заработало) Файлы приходят теперь не битые, да даже консоль хрома во вкладке сеть начала интерпретировать отправляемый бинарник как FormData и видит его свойства)
Поправь свой ответ, напиши свою идею про сбор бинарника через new Blob, я тоже отмечу его решением.
Alexandroppolus, а ведь ты прав, я как-то и позабыл, что конструкторы new Blob / new File могут первым аргументом принимать массив как из строк, так и из бинарных данных, при этом можно даже в перемешку. Дальше останется лишь отослать итоговый бинарник через xhr.send()
Спасибо большое за совет, завтра опробую и по результатам отпишусь.
Alexandroppolus, логично, но как же муторно будет такой бинарник собирать. Я вроде нарыл одну возможность, кажись можно файлы при multipart/form-data слать в виде base64, если указать кодировку:
Да, имено вручную хочу, я хочу понять как работают все эти сетевые запросы на самом низком уровне. Так-то с отправкой файлов проблем нет, просто у меня вопрос такой именно на счет ручного формирования тела.
Конечно, ничего страшного не случится, если вы сохраните base64 файл прям в базе, но ведь базы данных не для этого созданы.