【发布时间】:2020-02-27 14:04:41
【问题描述】:
我目前正在开发一个 Android 应用程序,用户可以在其中拍摄他或她的照片并将其上传到一个 PATCH API 端点,该端点将侦听密钥“头像”。
我正在使用Cordova Camera 和Advanced HTTP 插件来处理它。
以下是拍照时触发的功能。
takePicture() {
const options: CameraOptions = {
quality: 50,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
correctOrientation: true, // Corrects Android orientation quirks
allowEdit: false, // Post process aanpassingen
sourceType: this.camera.PictureSourceType.CAMERA // Pak de selfie camera
};
this.camera.getPicture(options).then((imageData) => {
const formData = new FormData();
formData.append('avatar', imageData, 'pic.jpg');
this.web.updateUserInfo(formData).subscribe(() => {});
}, (err) => {
console.error('Camera Error: ' + err);
});
}
这里是API处理
updateUserInfo(newData: any) {
return new Observable((obs) => {
this.http2.patch('localhost/user', {newData}, {
'X-Subdomain': 'host',
'X-Token': this.apiKey,
}).then(() => {console.log('Camera API success!'); obs.next(); }).catch(error => {
console.error(error);
});
});
}
没有给出错误,所以我很难看出问题出在哪里。我几乎没有使用 Cordova 和 Ionic 的经验,所以这对我来说是全新的。
【问题讨论】:
-
应用程序端一切正常。 Cordova 相机为您提供 base64 图像。您必须在服务器端或要显示图像的位置进行调试。
标签: android angular ionic-framework multipartform-data