React native 在iOS上将本机上载映像响应到服务器
我使用react native image picker从IOS设备(emulator)获取图像,我的代码如下:React native 在iOS上将本机上载映像响应到服务器,react-native,file-upload,react-native-ios,React Native,File Upload,React Native Ios,我使用react native image picker从IOS设备(emulator)获取图像,我的代码如下: try { ImagePicker.launchImageLibrary( { quality: 0.7, storageOptions:{ skipBackup:true, cameraRoll:true, waitUntilSaved:tru
try {
ImagePicker.launchImageLibrary(
{
quality: 0.7,
storageOptions:{
skipBackup:true,
cameraRoll:true,
waitUntilSaved:true
}
},
(response) => {
console.log(response);
if (response.didCancel || response.error === "Camera not available on simulator") return;
camera(response);
}
);
} catch (e) {
console.log(e);
}
在这之后,我有了一个带有uri、origURL、data和其他参数的对象
我尝试使用以下代码将此图像上载到服务器:
const postFormData = (url, formData, token) => {
return fetch(URL_API + url, {
body: formData,
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "multipart/form-data",
Authorization: 'Bearer ' + token,
},
})
.then(response => {console.log(response); return response.json()})
.catch(error => {
console.log(error);
alert("Upload failed!");
});
}
我的表格数据:
photo = {
uri: Platform.OS === 'ios' ? image.origURL.replace("file://", "") : image.uri,
type: image.type,
name: image.fileName,
data: image.data,
};
var form = new FormData();
form.append("image",photo);
我尝试origUrl,uri,尝试这个:'data:image/jpeg;base64,“+image.data
而不是uri,尝试使用替换(“文件:/”,“”)
,不使用替换(“文件:/”,“”)
这一切都不起作用。
如果我尝试使用uri上载,则会出现以下错误:
如果我尝试使用Origur上载,我会出现以下错误:
如果我尝试使用上传数据:image/jpeg;base64,“+image.data
相反,我在控制台中有一些错误
如何上传图片?也许这个问题只在iOS模拟器上出现?救命啊 我不知道为什么我不能用image.origURL和image.uri上传图像,但是当我插入uri
数据:image/jpeg;base64,“+image.data
,我无法上载图像,因为文件太大,它太大了,现在我在imagePicker选项中使用了质量为0.1的图像,并且所有操作都很好(对不起,我的英文版)))