vue elementui 大文件进度条下载功能实现
更新时间:2025年01月13日 10:56:49 作者:RW~
本文介绍了如何使用下载进度条来展示下载进度的方法,并展示了相关的效果图,结合实例代码介绍了vue elementui 大文件进度条下载的方法,感兴趣的朋友一起看看吧
效果图展示:

下载进度条
<el-card class="box-card" v-if="downloadProgress > 0"> <div>正在下载文件...</div> <el-progress :text-inside="true" :stroke-width="26" :percentage="downloadProgress" status="success"></el-progress> </el-card>
下载方法
downloadFile(row) {
const xhr = new XMLHttpRequest();
xhr.open('GET', row.certificatePdf, true);
xhr.responseType = 'blob';
// 监听下载进度
xhr.onprogress = (event) => {
if (event.lengthComputable) {
this.downloadProgress = Math.floor((event.loaded / event.total) * 100);
}
};
// 下载完成
xhr.onload = () => {
if (xhr.status === 200) {
const blob = xhr.response;
const link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = row.certificateName + '.pdf';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.downloadProgress = 0; // 重置进度条
}
};
// 错误处理
xhr.onerror = () => {
console.error('下载失败');
this.downloadProgress = 0; // 重置进度条
};
xhr.send();
},.box-card {
position: fixed;
right: 20px;
top: 100px;
width: 300px;
font-size: 12px;
}到此这篇关于vue elementui 大文件进度条下载功能实现的文章就介绍到这了,更多相关vue elementui 进度条下载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue 项目中选择 TSX 而非传统 .vue 文件的原因分析
文章探讨了Vue项目中使用TSX(TypeScript JSX)的背景、优势和局限性,TSX结合了TypeScript和JSX,增强了类型安全和代码组织性,但也增加了学习曲线和可读性问题,对于复杂应用,TSX提供了更大的灵活性和类型支持,逐渐成为一些开发者的选择2024-11-11
vuex之this.$store.dispatch()与this.$store.commit()的区别及说明
这篇文章主要介绍了vuex之this.$store.dispatch()与this.$store.commit()的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06
ElementUI中的el-dropdown传入多参数的实现方法
本文主要介绍了ElementUI中的el-dropdown传入多参数的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-12-12
vue3.0运行npm run dev报错Cannot find module&
本文主要介绍了vue3.0运行npm run dev报错Cannot find module node:url,因为使用的node版本是14.15.1低于15.0.0导致,具有一定的参考价值,感兴趣的可以了解一下2023-10-10


最新评论