将文件转为base64上传

利用elementui的upload组件,实现文件上传

  <div class="group_title"
               style="display:flex">
            附件管理
            <el-upload ref="upload"
                       class="upload-demo"
                       action="http://localhost/HcmFile/api/File/Upload"
                       :headers="{Authorization:'Bearer '+ AccessToken}"
                       :data="uploadComput"
                       :file-list="fileList"
                       :show-file-list="false"
                       :auto-upload="true"
                       :on-success="uploadSuccess"
                       :before-upload="onChange2"
                       multiple>
              <el-button title="上传附件"
                         icon="el-icon-plus"
                         slot="trigger"
                         circle
                         plain
                         style="margin-left:20px"
                         size="mini"></el-button>
              <el-button title="删除"
                         icon="el-icon-delete"
                         circle
                         size="mini"
                         @click="delDown2"></el-button>
            </el-upload>
          </div>
          //附件上传之前执行的函数
    onChange2(v) {
      let s = v.name;
      let str = "";
      //去掉文件后缀
      if (s) {
        str = s.split(".");
        str.pop();
        str = str.join(",");
      }
      this.name = str;
      this.uploadComput = {
        type: "DB",
        tableName: "K_LEAVE",
        keyFieldValue: this.keyFieldValue,
        title: this.name,
        memo: "",
      };
      let promise = new Promise((resolve) => {
        this.$nextTick(() => {
          resolve(true);
        });
      });

      return promise;
    },
          
          //文件上传成功的钩子
    uploadSuccess(response, file, fielList) {
      this.$message.success("上传成功");
      this.loadGridx();
    },
           
      let promise = new Promise((resolve) => {
        this.$nextTick(() => {
          resolve(true);
        });
      });

      return promise;
    },





//先将文件转为base64再上传。
 <div class="group_title"
               style="display:flex">附件管理
            <el-upload class="upload-demo"
                       :headers="{Authorization:'Bearer '+ AccessToken}"
                       action
                       :auto-upload="false"
                       :show-file-list="false"
                       :data="{}"
                       :on-change="onChange">
              <el-button circle
                         icon="el-icon-plus"
                         title="上传附件"
                         slot="trigger"
                         plain
                         style="margin-left:20px"
                         size="mini"></el-button>
              <el-button circle
                         icon="el-icon-delete"
                         title="删除"
                         @click="delDown"
                         size="mini"></el-button>
            </el-upload>
          </div>
            methods: {
    //文件状态改变时的钩子,添加文件、上传成功和上传失败时都会调用
    onChange(v) {
      console.log(v);
      let name = v.name; //文件名
      let This = this;
      //初始化一个fileReader对象
      let reader = new FileReader();
      //将文件读取为base64形式
      reader.readAsDataURL(v.raw);
      //读取成功时触发,读取结果在实例的result中
      reader.onload = function (e) {
        This.uploadExcel(name, this.result);
        console.log(reader);
      };
    },
    //将文件转为base64格式
      uploadExcel(x, y) {
      let fileContent = y.split("base64,")[1];
      let arr = x.split(".");
      arr.pop();
      let name = arr.join(",");
      let obj = {
        name: name,
        fileName: x,
        content: fileContent,
      };
      this.fileData.push(obj);
      this.$message.success("上传成功");
    },
    //保存时上传文件
    //id是对应的请假记录的ID
    uploadFile(id) {
      this.fileData.forEach((item) => {
        let data = {
          base64FileData: item.content,
          base64FileName: item.name,
          keyFieldValue: id,
          tableName: "K_LEAVE",
          type: "DB",
        };
        api.fileUploadBase64(this, data);
      });
    },
    }

upload相关属性:
action:文件上传的后端地址。
data:文件上传附带的参数。
slot=“trigger”:设置触发的元素。
headers:请求头部。
multiple:是否支持多选。
auto-upload:是否选完文件立即上传。
show-file-list:是否显示已上传文件列表。
before-upload:上传文件之前的钩子函数。参数为上传的文件。返回promise为fulfilled则上传成功。
on-success:文件上传成功的钩子函数。
on-change:文件状态改变时的钩子函数,添加文件、上传文件和上传失败时都会调用。参数为文件、文件列表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值