首页 > 技术文章 > vue + axios 实现图片上传 简单版

skydragonli 2020-03-24 10:13 原文

uploadImg(img) { // img  =>  base64图片地址
      let param = new FormData(); //创建form对象
      param.append('multipartFile', this.dataURLtoBlob(img));// base64 转  二进制流   multipartFile => 后端要求的参数
      this.$axios({
        method: 'post',  // post 方式
        url: '/ss-minprogram/uploads',  // 接口地址
        headers: { // 设置请求头
          "Content-Type": "multipart/form-data"
        },
        data: param  // 参数
      }).then((re) => { // 成功

      }).catch((err) => { // 异常

      })
    },
    //base64 转二进制流
    dataURLtoBlob(dataurl) {
      var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
      while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new Blob([u8arr], { type: mime });
    },

 

推荐阅读