我正在尝试上传一张图片和一些数据到我的API与Axios在我的世博会应用程序。
第一个
我还使用了expo-image-picker
,并将结果附加到FormData
:
const result = await ImagePicker.launchCameraAsync({})
if (result.cancelled) {
return
}
const personalPhotoUriParts = result.uri.split('.')
const personalPhotoFileType = personalPhotoUriParts[personalPhotoUriParts.length - 1]
const formData = new FormData()
formData.append('email', 'teste@mail.com')
formData.appent('password', '123456')
formData.append('personal_photo', {
uri: result.uri,
name: `personal_photo.${personalPhotoFileType}`,
type: `image/${personalPhotoFileType}`
})
register(formData) // from register.ts
所有的东西都在模拟器上按预期工作,发送和打印我从PHP API主体获得的内容:
// var_dump($_POST);
Array [
"email": "test@mail.com",
"password": "123456"
]
// var_dump($_FILES)
Object {
"personal_photo": Object {
"error": 0,
"name": "document_photo.jpg",
"size": 135327,
"tmp_name": "/tmp/php5o11qT",
"type": "image/jpg",
}
}
但是当我试图从物理设备发送它时,我在两种情况下都得到一个空的主体:
// var_dump($_POST);
Array []
// var_dump(get_file_contents('php://input'));
// nothing
// var_dump($_FILES);
Array []
我的赌注是FormData
,我使用其他API路径没有问题(在物理设备上),但当我不得不使用multipart/form-data
时,我遇到了这个问题。对我来说,没有意义,因为相同的API在模拟器上与React JS(WEB),Postman和RN w/ Expo一起工作。
1条答案
按热度按时间lrl1mhuk1#
也许你需要在你的Android清单上启用
您问题是在Android还是iOS设备上?