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

时间:2016-10-11 07:34:11

标签: javascript firebase firebase-storage

我正在使用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]);

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

1 个答案:

答案 0 :(得分:5)

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

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

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

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

请注意,您在此处丢失了文件扩展名,这就是Firebase Storage确定文件类型的方式。因此,您更有可能希望根据本地文件名确定文件名,然后根据本地文件名确定文件名,以使其唯一。

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

鉴于这种组合,只有前缀本地时间戳的机会已经很独特了:

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