我想取得进展,向用户显示文件上传了多少,这样他就不会在上传过程中退出,任何人都可以帮助我如何在 vue js 中制作进度条
我正在使用此 Firebase 代码来显示百分比我已使用 v-model 和 p 标签来显示百分比但没有任何效果
方法:{
uploadfiles(e) {
var storage = firebase.storage();
var user = firebase.auth().currentUser;
var file = e.target.files[0];
var path = "users/" + user.uid + "/attachments/" + Date.now() + ".jpg";
var storageRef = storage.ref(path);
var task = storageRef.put(file);
task.on('state_changed');
function progress (self, snapshot){
var percentage = (snapshot.bytesTransferred/snapshot.totalBytes)*100;
console.log('this is image =',percentage);
self.progress = percentage;
console.log(progress);
}
task.then(snapshot => {
console.log("image uploaded successfully");
//saveMessageInDatabase(newmessagedata);
return task.snapshot.ref.getDownloadURL();
})
.then(url => {
console.log("download url of image", url);
this.username.image = url;
console.log(this.username.image);
})
.catch(error => {
// hideMessageDialog();
console.log("image uploaded error");
});
}
} HTML
<p>{{this.progress}}%</p>
<progress max="100" :style="{width: progress+'%'}" value="0">
</progress>
<div class="progress-bar" role="progressbar" v-bind:aria-valuenow="this.progress" aria-valuemin="0" aria-valuemax="100" :style="{width: this.progress+'%'}"></div>
<input id="pic" type="file" @change="uploadfiles">
最佳答案
function progress (self, snapshot){
var percentage = (snapshot.bytesTransferred/snapshot.totalBytes)*100;
console.log('this is image =',percentage);
self.progress = percentage ;
console.log(progress);
}
将this
解析为progress
函数作为self
。
从 this.progress = Percentage ;
中,this
是函数进度
的手段。
关于javascript - 当我将图像上传到 Firebase 存储时,如何制作进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55836764/