Как отправить фото методом POST через axios, React Native
Разрабатывается мобильное приложение на React Native, одна из функций которого - делать снимок и сразу отправлять его на сервер.
Для снимков используется библиотека expo-camera.
Код:
const takePicture = async()=>{
if(cameraRef){
try{
const data = await cameraRef.current.takePictureAsync();
console.log(data.uri);
setImage(data.uri);
}catch(e){
console.log(e);
}
}
}
const savePicture = async () =>{
if(image){
try{
await MediaLibrary.createAssetAsync(image);
alert('Изображение сохранено');
setImage(null);
}catch(e){
console.log(e);
}
}
}
Задача отправить только что совершенный снимок на сервер, используя axios.
Попытался запихнуть фото в Axio через url, но сервер получает объект undefined.
как отправляю:
var formData = new FormData();
formData.append("image",{
uri: image,
name: 'photo.jpg',
type: 'image/jpg'
});
axios.post('http://192.168.0.110:4000/upload', formData, {
headers: {
"Content-Type": "multipart/form-data",
},
}).then((res)=>{
console.log(res)
})
как принимаю:
app.post("/upload", (req, res)=>{
try{
const photo = req.files.image
}catch(e){
console.log(e)
return res.status(500)
}
})
На сервере выходит ошибка: TypeError: Cannot read properties of undefined (reading 'image')
Данные, которые получает data при снимке: {"height": 4056, "uri": "file:///var/mobile/Containers/Data/Application/31FED614-92C6-4A9C-BD38-1C5326D59F36/Library/Caches/ExponentExperienceData/%2540anonymous%252FQue_client-d3f4dbbf-2172-4797-8e1e-250278e762cf/Camera/EA11D7A5-B7D5-4B6D-AEC5-3CD900A0189D.jpg", "width": 2376}
Как решить проблему?