2016-10-11 47 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。 –