У меня есть сценарий приложения с нативным реагированием и CodeIgniter в качестве бэкэнда.
У меня есть фрагмент кода для загрузки изображения, выбранного с помощью response-native-image-picker, как показано ниже:
let formData = new FormData();
let imageBody = {
uri: newImage,
name: 'profilepicture.jpg',
type: 'image/jpeg',
};
formData.append('file', (imageBody)) // case 1 gives network error
formData.append('file', JSON.stringify(imageBody)) //case 2 goes OK
apiUpdateUser(formData)
.then(res => {
this.setState({ showSnack: true, snackText: 'Profile Picture Updated'})
})
.catch(err => {
this.setState({ showSnack: true, snackText: 'Update Failed' })
});
Метод apiUpdateUser
выглядит так:
export const apiUpdateUser = body => {
return new Promise((resolve, reject) => {
axios
.post(ApiRoutes.updateUser, body, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(Constant.network.networkError);
});
});
};
Код Php на бэкэнде для обычной обработки этой загрузки:
$file=$this->request->getFile('file');//in CI
$file=$_FILES['file'];//in normal php
Моя проблема в том, что я ничего не получить в $file
variabe любым из методов. Переменная file пуста в обоих случаях.
Я проверил реализацию в react native, и она, похоже, не содержит ошибок сравнивая с учебными пособиями / демонстрациями в Интернете. Кроме того, способ обработки на бэкэнде очевиден и хорошо.
Я могу легко выполнить эту загрузку с помощью POSTMAN, но с помощью react-native я столкнулся с этой ошибкой. Кто-нибудь может показать мне здесь немного света ??