用element如何在vue中上传文件

今天来看一下如何在vue+element-ui的项目中成功上传文件给后台服务器

<el-upload
            class="upload-demo"  
            ref="upload"  // ref给节点命名
            :limit="1" //limit显示上传的数量
            accept=".xls, .xlsx"  //accept选择接受文件的种类
            :before-upload="beforeUpload"  //before-upload文件上传成功之前的回调函数可以返回为false可以阻止文件上传
            :action="$store.state.baseUrl.api + '/monitor/device/channel/importChannelList'"  //后台接收的地址
            :file-list="fileList"  //上传文件的列表
            :on-success="uploadSuccessed" // 成功之后的回调函数
            :on-error="uploadFailed" //发生错误的回调函数
            :auto-upload="false"  //是否自动上传
          >

在before-update中我需要进行的操作

beforeUpload(file) {
      let formData = new FormData();    //创建一个表单对象,固定格式
      formData.append("file", file);  //在表单中加入要上传的文件
      axios
        .post("/monitor/device/channel/importChannelList", formData)  //发送请求看是否成功
        .then(res => {
          if (res.data.code == 200) {
            this.$message({
              type: "success",
              message: "上传成功!"
            });
          } else {
            this.$message.error(res.data.message);
          }
        })
        .catch(err => {
          console.log(err);
        });

      return false;  //这儿我默认返回的失败
    },

在成功之后on-success中

if (res.code == 200) {
        this.$message({
          type: "success",
          message: "文件上传成功!"
        });
        // 关闭对话框并清空
        this.leadTo = false;
        this.fileList = [];
      } else {
        this.$message.error(res.message);
        // 关闭对话框并清空
        this.leadTo = false;
        this.fileList = [];
      }

如果没有设置自动上传我们就需要手动提交

this.$refs.upload.submit() //在对应的点击事件中设置upload是对应节点的名字
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 完整项目地址:vue-element-admin系类文章一:手摸手,带你用vue撸后台 系列一(基础篇)系类文章二...
    7cd975786ccd阅读 6,958评论 2 35
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,611评论 0 7
  • 前言最近在用vue开发一个后台管理系统,搭配着Element-UI一起使用。其中一个部分用到了Element-UI...
    frankgo阅读 6,352评论 2 0
  • 我心里难受,难受,万箭穿心,为什么会这样,我好迷茫,好像丢了魂,什么都不想做,又不能专注做一件事情。 像是无声中崩...
    祯裾先生阅读 1,781评论 0 0
  • 一年的大学转眼即逝,带给我的却不是那么的美好。 迷茫、懵懂、无知,整天只知道吃喝玩乐,人生没有方向,生活没有目标,...
    夜殇叶子阅读 184评论 0 0