Как загрузить изображение и сохранить его в хранилище firebase? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть следующая кнопка загрузки.

<input type="file" id="logo-image-upload" onChange="imageValidation()">

Следующая функция вызывается всякий раз, когда загружается изображение.

    function imageValidation(){
        let storageRef = firebase.storage.ref('user-logos')
        let imageInput = document.getElementById('logo-image-upload')
        if(imageInput.files && imageInput.files[0]){
            let reader;
            reader = new FileReader();
            reader.onload = (e) => {
                    storageRef.put(//Blob).then(function(snapshot) {
                        console.log("Image Uploaded")
                    });
                }
            }
        }

Что я могу передать как значение Image, чтобы Я могу загрузить его в хранилище firebase?

1 Ответ

1 голос
/ 04 августа 2020

Пожалуйста, добавьте свой код html для лучшего понимания. Но если ваш ввод имеет тип File , вы можете напрямую загрузить его в firebase. Нет необходимости преобразовывать его в Blob .

Вы можете использовать приведенный ниже код для достижения своей цели.

    let uploadTask: firebase.storage.UploadTask = storageRef.put(imageInput.files[0]);
    uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED,
      (snapshot: any) => {
        let x: number = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
        return subject.next({ status: x, fileUploadSuccess: false, fileUploading: true, fileUploadFailed: false, progress: true });
      })

Я думаю, вы можете решить свою проблему, используя этот подход.

...