elementUI el-upload上传组件实战使用

简介: elementUI el-upload上传组件实战使用
<!-- 导入---------------------------------------- -->
<el-upload
    :show-file-list="false" 
    :headers="headers"
    :action="actionUrl" 
    :before-upload="beforeUpload" 
    :on-success="uploadSuccess"
    :on-error="uploadError"
    :disabled="percent < 100"
    >
        <el-button 
            type="success" 
            icon="el-icon-upload" 
            :loading="percent < 100">
            {{ 100 > percent ? percent
                + "%" : "上传数据" }}
        </el-button>
</el-upload>
<!-- ---------------------------------------- -->
属性_________________________________________________________
// 上传----------------------------------------
headers: {
    token: localStorage.token, //获取token(注意仔细看后端接受token的字段名是不是叫做“token”)
},
actionUrl: `${this.$d.API_ROOT_URL}/customer/importCustomerData`,
fmt: ["xls", "xlsx"],
dur: 100,
percent: 100,
// ----------------------------------------
方法_________________________________________________________
// 上传文件----------------------------------------------------------------
showFakeLoading() {
    this.interval && clearInterval(this.interval);
    this.percent = 0;
    this.interval = setInterval(() => {
        this.percent++;
        this.percent >= 99 && clearInterval(this.interval);
    }, this.dur);
},
hideFakeLoading() {
    this.interval && clearInterval(this.interval);
    this.percent = 100;
},
//文件上传之前
beforeUpload(file, id) {
    // 判断是不是特定的格式________________________
    let isFile = this.fmt.includes(file.name.toLocaleLowerCase().split(".").pop());
    const maxSize = 50; //限制大小
    const isAllowSize = file.size / 1024 / 1024 <= maxSize;
    isFile || this.$message.error("上传文件只能是" + this.fmt + "格式");
    isAllowSize || this.$message.error("上传文件大小不能超过" + maxSize + "MB");
    let allowUpload = isFile && isAllowSize;
    allowUpload && this.showFakeLoading(); //虚假加载
    return allowUpload; //若返回false则停止上传
},
//上传成功
uploadSuccess(response, file, fileList) {
    this.hideFakeLoading();
    if (response.data && response.data.key) {
        // 下载失败原因的描述文件
        this.$d.customer_downloadImportCustomerExcel({ key: response.data.key }, {
            s: (d) => {
                this.$g.downloadFile(d, `“${file.name}”上传失败原因`, '.xls');
                this.$message.error(`“${file.name}”上传失败,请查看失败原因`);
                this.initList(true);//可能上传导入文件部分成功了,所以也需要刷新列表
                console.log('上传失败', response, file, fileList);
            }
        });
    } else if (response.success) {
        // 上传成功了
        this.$message.success(`“${file.name}”导入成功`);
        this.initList(true);//刷新列表
        console.log('上传成功', response, file, fileList);
    } else {
        // 其他失败原因
        this.$message.error(response.msg);
        console.log('上传失败', response, file, fileList);
    }
},
//上传失败
uploadError(err, file, fileList) {
    this.hideFakeLoading();
    this.$message.error("上传失败");
    console.log('上传失败', err, file, fileList);
},
// ----------------------------------------
样式_________________________________________________________
// 上传按钮禁用状态----------------------------------------
>>>.el-upload {
    cursor: not-allowed;
}

相关扩展阅读

image.png

相关文章
|
前端开发 JavaScript
使用Element-UI中的el-upload实现文件的上传demo(亲测有用)
使用Element-UI中的el-upload实现文件的上传demo(亲测有用)
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
9139 1
|
前端开发 JavaScript 安全
【前端相关】elementui使用el-upload组件实现自定义上传
【前端相关】elementui使用el-upload组件实现自定义上传
3609 0
|
JavaScript 前端开发
el-upload上传文件
el-upload上传文件
1507 0
|
API
Element UI Loading 加载组件动态变更 text 值(加载文案)
有这样的一个需求,我在上传文件的时候,上传阶段耗时较长,所以利用加载动画作为友好提示用户等待。
1920 0
Element UI Loading 加载组件动态变更 text 值(加载文案)
|
前端开发
Vue3 element-ui el-upload(上传组件) 上传图片后,隐藏上传按钮
Vue3 element-ui el-upload(上传组件) 上传图片后,隐藏上传按钮
1217 0
|
JavaScript
Element_select 选择器 选中框中显示不了选中的值
解决Vue中`el-select`选择器不显示选中值的问题:在`selectChanged`方法中添加`this.$forceUpdate()`,强制组件更新,使输入框显示选择的值。示例代码包括模板和方法。
1796 2
|
存储 前端开发 Java
Element el-upload 文件上传/图片上传/拖拽上传/附带参数/附带请求头部详解
文目录 1. 前言 2. 基本用法 2.1 前端部分 2.2 后端部分 2.3 获取后端返回信息 3. 外观功能介绍 3.1 拖拽上传 3.2 显示图片 3.3 设置文件列表样式 3.4 显示提示信息 4. 事件功能介绍 4.1 限制上传文件数量 4.2 限制上传文件类型和大小 4.3 移除文件处理 4.4 手动上传 5. 附带参数 6. 附带请求头部 7. 小结
8190 0
|
存储 并行计算 测试技术
NumPy 性能优化:提升 Python 数值计算的速度
【8月更文第30天】Python 是一种广泛使用的编程语言,在科学计算领域尤其受欢迎。然而,由于 Python 的动态类型和解释执行机制,其在处理大规模数值数据时可能会显得相对较慢。为了克服这一限制,NumPy(Numerical Python)库提供了高性能的多维数组对象以及一系列用于操作这些数组的函数。本文将探讨如何利用 NumPy 来提高 Python 中数值运算的效率。
1352 1
|
JavaScript 前端开发
vue导出pdf(大数量可能有问题)
vue导出pdf(大数量可能有问题)
710 2

热门文章

最新文章