我的背影看起来像这样。后端需要一个文件和2个字符串参数
@multipart/form-data
file: File,
title: string,
content: string
我曾经用来选择文件,然后通过httpClient和formData
将其上传到服务器 const formData = new FormData();
formData.append('title', form.value.title);
formData.append('content', form.value.description);
formData.append('file', this.img);
this.http.post(this.apiUrl + '/img', formData, settings);
一切正常。
但现在我决定不再使用了。我决定使用原生相机
getPictureFromCamera() {
return new Promise((resolve, reject) => {
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE
}
this.camera.getPicture(options).then((imageData) => {
let base64Image = null;
//get photo from the camera based on platform type
base64Image = normalizeURL(imageData);
resolve(base64Image);
}, (error) => {
console.debug("Unable to obtain picture: " + error, "app");
reject(error);
});
})
}
我成功拍摄并显示照片。问题是我的函数只返回图像的路径(而不是文件)。如何获取实际文件,以便我可以使用form-data和httpClient将其发布到我的服务器。
我想使用旧的formdata函数,所以我只需要一个文件。有没有办法我只从imgPath获取文件。
注意:当我记录' base64Image' (你可以在上面的代码中看到)
http://localhost:8080/var/mobile/Containers/Data/Application/85D7DD14-849C-4ADE-9005-D8165CC2A55B/tmp/cdv_photo_001.jpg