如何正确上传图片到firebase存储器(javascript)?

qnyhuwrf  于 2023-01-16  发布在  Java
关注(0)|答案(2)|浏览(153)

我上传图像到firebase存储有问题,它不断上传9B文件到存储,即使选择的文件是一个100MB的文件。它显示的进度为NaN%,一旦我成功上传图像到firebase存储,但现在我失败了😭这里是代码,

const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
const storage = getStorage();

var picker = document.getElementById('img');

picker.onchange = function(){
var file = window.URL.createObjectURL(picker.files[0]);
var filename = picker.files[0].name;
const storageRef = ref(storage, 'icons/' + filename);

// 'file' comes from the Blob or File API
uploadBytes(storageRef, file).then((snapshot) => {
  console.log('Uploaded a blob or file!');
 });
}

我尝试了许多选项,我不知道为什么它不工作,我想上传图片和下载网址。

mbyulnm0

mbyulnm01#

您必须将实际的File对象而不是对象URL传递给uploadBytes

picker.onchange = function() {
    const file = picker.files[0];
    if (!file) {
      alert("No file selected")
      return
    }
  
    const storageRef = ref(storage, 'icons/' + file.name);

    uploadBytes(storageRef, file).then((snapshot) => {
        console.log('Uploaded a blob or file!');
    }).catch(e => console.log(e));
}
o8x7eapl

o8x7eapl2#

似乎您提供了图像blob/file的url,而不是传递文件本身。请尝试将第8行更改为var file = picker.files[0]
如果这样做不起作用,请尝试在file初始化后对其进行日志记录,以确保它存在。

相关问题