【问题标题】:Firebase Storage invalid argument on upload上传时 Firebase 存储无效参数
【发布时间】:2016-12-27 16:37:54
【问题描述】:

我不断收到Invalid argument in put at index 0: Expected Blob or File 错误。有趣的是参数完全是一个文件......

代码如下:

var file = document.getElementById('cke_69_fileInput')
          .contentWindow.document.getElementById('cke_69_fileInput_input').files[0];

var storageUrl = 'noticias/imagenes/';
var storageRef = firebase.storage().ref(storageUrl + file.name);
console.warn(file); // Watch Screenshot
var uploadTask = storageRef.put(file);

这是在请求文件的错误之前发出的实际文件警告的屏幕截图...

【问题讨论】:

  • 你使用的是什么版本的 firebase.js?
  • @MikeMcDonald 3.2.1

标签: javascript firebase firebase-storage


【解决方案1】:

尝试将文件转换为 blob...

  var reader = new FileReader();
  reader.onloadend = function (evt) {
    var blob = new Blob([evt.target.result], { type: "image/jpeg" });

    var storageUrl = 'noticias/imagenes/';
    var storageRef = firebase.storage().ref(storageUrl + file.name);
    console.warn(file); // Watch Screenshot
    var uploadTask = storageRef.put(blob);

  }

  reader.onerror = function (e) {
      console.log("Failed file read: " + e.toString());
  };
  reader.readAsArrayBuffer(file);

【讨论】:

  • 放 {type:mime} 用于上传所有格式的文件。
  • @Aaron Saunders - 谢谢!虽然 blob 有效,但我想知道在这种情况下,firebase 期望作为“文件”是什么?
  • 也可以使用 {type:file.type} 来指定 mime 类型
猜你喜欢
  • 2018-03-17
  • 2021-08-24
  • 2020-04-23
  • 2021-03-09
  • 2017-02-03
  • 2021-03-30
  • 2021-08-18
  • 2018-09-22
相关资源
最近更新 更多