【发布时间】:2018-10-10 23:58:53
【问题描述】:
我需要帮助才能将图像从 ionic 发送到 Firebase 存储。所以,我用这个功能拍照:
async takePicture() {
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE
}
try {
let imageURI = await this.camera.getPicture(options);
let newImageURI = await this.cropImage(imageURI);
let imageSanitized = await this.encodeFile(newImageURI);
this.imgSrc = imageSanitized;
} catch (e) {
console.error(JSON.stringify(e));
}
}
我用这个函数裁剪:
cropImage(imgURI): Promise<string> {
return new Promise((resolve,reject) => {
this.cropService.crop(imgURI, { quality: 100 }).then((newImageURI: string) => {
resolve(newImageURI);
}, (err) => {
reject(err);
})
})
}
用这个函数完成我的编码:
encodeFile(ImageURI: string): Promise<any>{
return new Promise((resolve, reject) => {
this.base64.encodeFile(ImageURI).then((base64File: string) => {
this.imgUri = base64File;
resolve(this.domSanitizer.bypassSecurityTrustResourceUrl(base64File));
}, (err) => {
reject(err);
})
})
}
this.imgSrc 是我的净化图像,它在我的 file.html 中显示得非常好。但是,我需要将此图像发送到 Firebase 存储。为此,我创建了这个函数:
uploadToStorage(imgString) {
console.log(imgString);
this.storage.child('exemplo.JPEG').putString(imgString, 'data_url').then((res) => {
console.log(res);
}, (error) => {
console.error(error);
});
}
imgString 是谁从函数 encodeFile 中获取 this.domSanitizer.bypassSecurityTrustResourceUrl(base64File) 或 base64File 的值。
我的上传功能没有出错,但是,我没有成功,什么都没有显示。
如何将图像正确发送到服务器?
【问题讨论】:
标签: javascript firebase ionic3 firebase-storage