el-upload 上传附件(拆解步骤)

目录

[1. 看elementui /element-plus 官网案例](#1. 看elementui /element-plus 官网案例)

[2. html部分: 把官网上的搬下来,最好加一个按钮,上传到服务器(后端)](#2. html部分: 把官网上的搬下来,最好加一个按钮,上传到服务器(后端))

[3. js 部分:](#3. js 部分:)

[3.1 首先,先定义一个变量,files](#3.1 首先,先定义一个变量,files)

[3.2 当上传图片时,触发ChangeImage方法](#3.2 当上传图片时,触发ChangeImage方法)

[3.3 点击【上传服务器】,触发UpdateFilesData 方法](#3.3 点击【上传服务器】,触发UpdateFilesData 方法)


案例:

1. 看elementui /element-plus 官网案例

下面内容只表示怎么上传附件且怎么上传到服务器,表格的代码不呈现。

2. html部分: 把官网上的搬下来,最好加一个按钮,上传到服务器(后端)

html 复制代码
  <el-card>
          <el-upload
            drag
            class="upload-demo"
            ref="upload"
            action="#"
            :on-change="ChangeImage"
            :file-list="files"
            :auto-upload="false"
            :show-file-list="true"
          >
            <i class="el-icon-upload"></i>
            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
          </el-upload>
        </el-card>
        <el-button
          style="margin-left: 10px;"
          type="success"
          @click="UpdateFilesData"
        >上传到服务器</el-button>

ps:

on-change: 上传文件时调用

file-list: 上传的文件列表,数组格式,在data里面定义变量

auto-upload: 是否在选取文件后立即进行上传

show-file-list:是否显示已上传文件列表

3. js 部分:

3.1 首先,先定义一个变量,files
javascript 复制代码
data(){
  return:{
    files: [],
    formData: null, //附件上传FormData
  }
}
3.2 当上传图片时,触发ChangeImage方法
javascript 复制代码
ChangeImage(file, filelist) {
      console.log(file, "on-change事件", filelist);
      this.files = filelist;
    },

打印结果:

3.3 点击【上传服务器】,触发UpdateFilesData 方法
javascript 复制代码
UpdateFilesData() {
      debugger;
      this.formData = new FormData();
      this.files.forEach((item) => {
        if (!(!item.raw && item.url.indexOf("blob") === -1)) {
          this.formData.append("files", item.raw);
        }
      });
      this.formData.append("FileType", 1); //属于第几个附件上传控件
      this.FilesUpdate(); //调用接口
    },

/*
*  调后端的接口(UploadFile),带参数formData
*/

FilesUpdate() {
      let _this = this;
      this.formData.append("DataID", this.Eid); //属于哪条主表数据
      this.formData.append("MenuID", localStorage.getItem("MenuID")); //属于哪个菜单下
      _this.$EquiApi.UploadFile(this.formData).then((res) => {
        if (res.data.code == 200) {
          this.Refresh(res); //接口返回成功后,调 刷新页面的方法
        }
      });
    },
相关推荐
旧味清欢|几秒前
关注分离(Separation of Concerns)在前端开发中的实践演进:从 XMLHttpRequest 到 Fetch API
javascript·http·es6
热爱编程的小曾17 分钟前
sqli-labs靶场 less 8
前端·数据库·less
gongzemin29 分钟前
React 和 Vue3 在事件传递的区别
前端·vue.js·react.js
Apifox42 分钟前
如何在 Apifox 中通过 Runner 运行包含云端数据库连接配置的测试场景
前端·后端·ci/cd
-代号95271 小时前
【JavaScript】十四、轮播图
javascript·css·css3
麦麦大数据1 小时前
neo4j+django+deepseek知识图谱学习系统对接前后端分离前端vue
vue.js·django·知识图谱·neo4j·deepseek·在线学习系统
树上有只程序猿1 小时前
后端思维之高并发处理方案
前端
庸俗今天不摸鱼2 小时前
【万字总结】前端全方位性能优化指南(十)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
前端·性能优化·webassembly
QTX187302 小时前
JavaScript 中的原型链与继承
开发语言·javascript·原型模式
黄毛火烧雪下2 小时前
React Context API 用于在组件树中共享全局状态
前端·javascript·react.js