images/user1234/file.txt
创建一个文件,那么所有中间的“文件夹”,如“images”和“user1234”,都将被创建。因此,您的代码将变成:var uploadTask = storageRef.child('images/user1234/file.txt').put(file, metadata);
请注意,在child()
调用中,您需要包括文件名(例如foo.txt
),因为引用应该包括完整路径和文件名,否则您的文件将被称为images
。
您肯定可以创建目录...只需稍微调整引用,我按照以下步骤操作。
test = (e,v) => {
let fileName = "filename"
let newDirectory = "someDir"
let storage = firebase.storage().ref(`images/${newDirectory}/${fileName}`)
let file = e.target.files[0]
if(file !== undefined && file.type === "image/png" ) {
storage.put(file)
.then( d => console.log('you did it'))
.catch( d => console.log("do something"))
}
}
创建文件夹的示例:
async function createFolder (currentRef: StorageReference, folderName: string) {
const newDir = ref(currentRef, name)
const ghostFile = ref(newDir, '.ghostfile')
await uploadString(ghostFile, '')
}
并且有一个列出文件的示例:
async function loadLists (ref: StorageReference) {
const { prefixes, items } = await listAll(ref)
return {
directories: prefixes,
files: items.filter(file => file.name !=== '.ghostfile')
}
}
String myFolder = "MyImages";
StorageReference riversRef = storageReference.child(myFolder).child("images/pic.jpg");