作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在我正在使用 array.map 方法上传每个文件并获取响应的 url,但问题是它在某些文件中给了我“C:\fakepath\pic1”,这会造成困惑,尽管它正确上传了文件(意味着我已经在我的 firebase 存储中看到了图像)但没有返回响应中的 url
这是我用来放置文件的代码
uploadPicsArr.map(function (pic, index) {
var storageRef = fbStorage.ref('images/'+token+'/'+pic.name);
// Upload file to Firebase Storage
var uploadTask = storageRef.put(pic.file);
uploadTask.on('state_changed', null, null, function () {
var downloadUrl = uploadTask.snapshot.downloadURL;
userInfo[pic.name] = downloadUrl;
})
if (uploadPicsArr.length == index + 1) {
fbDatabase.ref('users').push(userInfo).then(function (success){
browserHistory.push('/home');
});
}
})
fbStorage
:firebase.storage()uploadPicsArr
= 对象数组,每个对象都有一个属性名称和文件name
:所选文件的名称文件
:选定的文件
请告诉我我做错了什么,或者是否有其他更好的方法来上传整个数组并获取每个文件 URL 作为响应,那就更好了
最佳答案
我认为您忘记将快照作为完整函数中的参数传递:
uploadPicsArr.map(function (pic, index) {
var storageRef = fbStorage.ref('images/'+token+'/'+pic.name);
// Upload file to Firebase Storage
var uploadTask = storageRef.put(pic.file);
uploadTask.on('state_changed', null, null, function (snapshot) {
userInfo[pic.name] = snapshot.downloadURL;
})
if (uploadPicsArr.length == index + 1) {
fbDatabase.ref('users').push(userInfo).then(function (success){
browserHistory.push('/home');
});
}
})
关于javascript - 如何将图像数组上传到 firebase 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38220935/
我是一名优秀的程序员,十分优秀!