【问题标题】:Firebase Web Storage - upload a file without specifying its nameFirebase Web Storage - 上传文件而不指定其名称
【发布时间】:2016-10-11 07:34:10
【问题描述】:

我正在使用 Firebase 存储,一切正常。

如何在不指定文件名的情况下上传文件?

因此,文件将由 Firebase 获得一个唯一的名称,就像它们在存储中一样。

这是我现在使用的一个例子:

firebase.initializeApp(config);
var fileUpload = document.getElementById("uploadFile").files;
var storageRef = firebase.storage().ref(fileUpload[0].name);
var uploadTask = storageRef.put(fileUpload[0]);

我想做这样的事情:

firebase.initializeApp(config);
var fileUpload = document.getElementById("uploadFile").files;
var storageRef = firebase.storage().ref();
var uploadTask = storageRef.put(fileUpload[0]);

感谢您提供的任何帮助。谢谢。

【问题讨论】:

    标签: javascript firebase firebase-storage


    【解决方案1】:

    Firebase 存储中没有内置 API 可以为您生成文件名。

    但与 Firebase 数据库所做的类似,您可以轻松地在客户端生成一个在统计上保证唯一的文件名。

    执行此操作的一种方法是生成 UUID,例如使用 guid() function from this answer

    var storageRef = firebase.storage().ref(guid());
    

    请注意,您会在此处丢失文件扩展名,这是 Firebase 存储确定文件类型的方式。因此,您更有可能希望根据本地文件名确定文件名,然后在它之前添加一些内容以使其唯一。

    var storageRef = firebase.storage().ref(guid()+fileUpload[0].name);
    

    鉴于这种组合,很有可能只是以本地时间戳为前缀已经是唯一的:

    var storageRef = firebase.storage().ref(Date.now()+fileUpload[0].name);
    

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 2022-01-11
      • 2021-04-27
      • 2023-03-26
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 2021-06-10
      相关资源
      最近更新 更多