代码之家  ›  专栏  ›  技术社区  ›  Sahar Millis

Firebase Web存储-上传文件而不指定其名称

  •  4
  • Sahar Millis  · 技术社区  · 8 年前

    如何上传文件而不指定其名称?

    因此,文件将通过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]);
    

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

    1 回复  |  直到 8 年前
        1
  •  7
  •   Community CDub    8 年前

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

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

    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);