2016-10-11 93 views
2

我正在使用Firebase存储,并且一切正常。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]); 

感谢所有帮助您可以提供。谢谢。

回答

4

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

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

一种方法是生成一个UUID,如与guid() function from this answer

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

注意,你会失去的文件扩展名在这里,这是火力地堡寄存如何确定的文件类型。因此,更可能需要根据本地文件名确定文件名,但之后需要使用它来使其唯一。

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

鉴于这样的组合,还有刚刚与本地时间戳前缀一个非常好的机会是独一无二的已经:

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

感谢的人。得到它了。 U ROCK。 –

相关问题