将图像从android文件系统上载到Firebase存储
我目前正在创建一个页面,允许用户拍摄自己的身份证和自拍照片,但是,我无法使用submitpicture()从文件系统获取文件以上载 这是我的打字脚本代码:将图像从android文件系统上载到Firebase存储,android,angular,firebase,ionic4,firebase-storage,Android,Angular,Firebase,Ionic4,Firebase Storage,我目前正在创建一个页面,允许用户拍摄自己的身份证和自拍照片,但是,我无法使用submitpicture()从文件系统获取文件以上载 这是我的打字脚本代码: import { Component, OnInit } from '@angular/core'; import { File } from '@ionic-native/file/ngx'; import { Camera, CameraOptions } from '@ionic-native/camera/ngx'; import *
import { Component, OnInit } from '@angular/core';
import { File } from '@ionic-native/file/ngx';
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
import * as firebase from 'firebase';
import { EmailComposer } from '@ionic-native/email-composer/ngx';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-verifyidentity',
templateUrl: './verifyidentity.page.html',
styleUrls: ['./verifyidentity.page.scss'],
})
export class VerifyidentityPage implements OnInit {
constructor(public camera: Camera, public file: File, private modalController: ModalController, public emailComposer: EmailComposer) { }
nric: any;
selfie: any;
nricimageData: any;
selfieimageData: any;
ngOnInit() {
}
takenric() {
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
saveToPhotoAlbum: true,
cameraDirection: 1
}
this.camera.getPicture().then((imageData) => {
this.nricimageData = imageData
let filename = imageData.substring(imageData.lastIndexOf('/') + 1);
let path = imageData.substring(0, imageData.lastIndexOf('/') + 1);
this.file.readAsDataURL(path,filename).then((base64data) => {
this.nric = base64data;
firebase.storage().ref().child("test").put(imageData).then(snapshot => {
console.log('Uploaded image ');
});
})
});
}
takeselfie() {
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
saveToPhotoAlbum: true,
cameraDirection: 1
}
this.camera.getPicture().then((imageData) => {
this.selfieimageData = imageData
let filename = imageData.substring(imageData.lastIndexOf('/') + 1);
let path = imageData.substring(0, imageData.lastIndexOf('/') + 1);
this.file.readAsDataURL(path,filename).then((base64data) => {
this.selfie = base64data;
firebase.storage().ref().child("test").put(imageData).then(snapshot => {
console.log('Uploaded image ');
});
})
});
}
submitpicture() {
firebase.storage().ref().child("nric").put(this.nric); // this does not work!
}
我想知道是否可以使用submitpicture()从android系统获取图像,并在上传到firebase存储之前将其存储在变量中
非常抱歉给您带来不便,谢谢
致以最良好的祝愿,
Dan在执行
submitpicture
之前是否调用takenric
?是的,在调用submitpicture()之前会调用它。问题是什么?你有什么错误吗?打印此.nricimageData时,您会看到什么?这是它。我想知道是否有可能只上传带有文件目录的图片,但我认为这是不可能的。或者还有其他上传图片的方式吗?到目前为止,我没有任何错误。