我正在使用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]);
感谢您提供的任何帮助。感谢。
答案 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);