@uroot

Как передать картинку на бэк как бинарный файл?

На фронте юзается React, react-dropzone и react-final-form -- чисто для справки.

Что-то у меня всё никак не получается оправить из инпута файл на бэк как бинарный файл:
Как это должно выглядеть в консоли:
613626fb4718d345470733.jpeg

Сам файл я получаю через new FileReader()
Я пробую преобразовать содержимое:
let blob = new Blob(fileReader.result, {type: 'image/jpeg'});

Но вижу ошибку:
TypeError: Failed to construct 'Blob': The provided value cannot be converted to a sequence

Как мне содержимое конвентировать/преобразовать в бинарный файл?

UPD:
Получается вот содержимое таргета. Видно сам файл:
spoiler
61362e82f163c746221111.png

Если я result отправляю на бэк. То тов. бэкендер жалуется, что я эму отправляю строку с содержимым файла, а не сам файл.
  • Вопрос задан
  • 1946 просмотров
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Пример отправки файла, чтобы было как у вас на скриншоте:
async function sendFile() {
	
	// Берём из поля выбора файлов самый первый файл за номером 0:
	var file = document.querySelector('input[type="file"]').files[0];
	
	// Создаем форму конструктором:
	var form_data = new FormData();
	
	// Добавляем в форму наш файл из поля:
	form_data.append('image', file, file.name);
	
	// Добавляем остальные данные:
	
	form_data.append('title', 'www');
	form_data.append('body', 'ghghghghgh');
	form_data.append('tag', '123456');
	form_data.append('lang', 'ru');
	form_data.append('published_at', '2020-01-01 20:00:00');
	
	// Отправляем форму на сервер (замените адрес обработчика на свой):
	
	var response = await (await fetch('https://nadim.work/test.php', {
		method: 'POST',
		body: form_data
	})).text();
	
	// Выводим ответ сервера в консоли:
	
	console.log("Ответ сервера: " + response);
	
	return response;
	
}

Вызывайте функцию sendFile() и смотрите результат.
Ответ написан
Alexandroppolus
@Alexandroppolus
кодир
FileReader тут не нужен.
Не надо читать содержимое файла, чтобы потом сотворить из него блоб. Просто отправляй исходный файл.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 11:54
50000 руб./за проект
23 нояб. 2024, в 07:32
75000 руб./за проект
28 нояб. 2024, в 11:38
5000 руб./за проект