#reactjs
Вопрос:
Это мой код:
thisUploadImage = async(e) => {
let file = e.target.files[0];
const compress = new Compress();
const resizedImage = await compress.compress([file], {
size: 2,
quality: 1,
maxWidth: 300,
maxHeight: 300,
resize: true
});
const img = resizedImage[0];
const base64str = img.data;
const imgExt = img.ext;;
const resizedFiile = Compress.convertBase64ToFile(base64str, imgExt);
let fd = new FormData();
fd.append('image', resizedFiile);
const headers = {
'Authorization': `Bearer ${localStorage.getItem("Token")}`
};
axios.post(`url`, fd, {
headers
}).then(response => {}).catch(error => {})
}
Когда я использую этот код для изменения размера и загрузки изображения, сервер получает ошибку 400.
Ответ №1:
A 400 status
представляет собой a Bad Request
, что означает, что сервер не может обработать запрос из-за ошибки клиента. Убедитесь, что вы отправляете данные в правильную конечную точку в API, и убедитесь, что конечная точка может обрабатывать объект, который вы ей отправляете.
Вы можете проверить это, сравнив выходные console.log(fd);
данные с моделью, которую ожидает ваш API.
Попробуйте протестировать API с помощью такого инструмента, как, например, Postman, о котором вы можете прочитать подробнее 400 status
в документах Mozilla.
Комментарии:
1. при проверке вывода файла с измененным размером это дает мне : Большой двоичный объект {размер: 147310, тип: «изображение/png»}, а при добавлении этого вывода в formdata и отправке на сервер возникает ошибка 400
Ответ №2:
let file_name = new File([resizedFiile], file.name, {lastModified: file.lastModified, type: file.type});