Bootstrap Progress Bar with Vue
The below example uses Bootstrap 4.5, Vue 2 and Axios.
In order to get your real-time progress bar to show the correct values on upload or download, you will need to do the following:
Html:
//For upload
//For Download
Vue.js:
export default { data() { return { videoUploadPercentage: 0, videoDownloadPercentage: 0 }}, YourMethodName: function (id) { let formData = new FormData(); const config = { //Choose upload onUploadProgress: event => { this.videoUploadPercentage = Math.round( (event.loaded * 100) / event.total ); }, //Or download onDownloadProgress: event => { this.videoDownloadPercentage = Math.round( (event.loaded * 100) / event.total ); }, }; formData.append('_method', 'patch'); axios.post('/admin/videos/' + id, formData, config).then((response) => { }).catch((error) => {}); }, }
Things to remember, if you test this upload on a tiny file (less than 10mb) you may not see the percentage moving up.
I experienced this issue when trying to test my progress bar with Vue on a file of about 9mb. But when I change the file from a 9mb to a 40mb, I started to see the difference.
Make sure you do not use the download or upload methods together, it is either one or the other :-)
I hope this will work out for you and you can thank us at Kollox.com by resharing this article to social networking websites.
Thanks!
Disclaimer:
As an Amazon Associate I earn from qualifying purchases. This post may contain affiliate links which means I may receive a commission for purchases made through links.