当我在PHP应用程序中使用localhost URL时,我能够使用下面给出的react native代码上传图像。但是,当我将php应用程序托管到服务器时,除fileupload之外,所有其他API都可以从react native应用程序运行。 当我调试React本机应用程序从服务器收到的响应时,它显示如下。
{"name":"avatar.png","type":"","tmp_name":"","error":1,"size":0}
用于文件上传的反应本机代码如下所示。
upload(){
const body = new FormData();
body.append('uid', 1);
body.append('image', {
uri: this.state.avatarSource.uri,
type: this.state.avatarSource.type,
name: this.state.avatarSource.fileName,
size:this.state.avatarSource.fileSize
})
fetch(config.API_URL+"/upload/image/1", {
method: 'POST',
body: body
})
.then(res => res.text())
.then((responseJson) => {
console.log(responseJson);
})
.catch((error) => {
console.log(error);
});
}
addPhotos(){
ImagePicker.showImagePicker(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else {
const source = response;
console.log(source);
this.setState({
avatarSource: source
});
}
});
}
我也尝试了以下选项来获取uri,并且可以在本地主机中按上述代码进行操作。
source = { uri: response.uri.replace('file://', '')}
我在这里想念什么?我是否必须在ios清单或其他任何地方添加任何配置或设置才能使此功能与远程服务器一起使用?
注意:我已经直接用邮递员测试了远程服务器代码,并且图像上传正常。托管后,它不仅不能在react本机应用程序中工作。