elementui 上传文件


1. utils/upload.js

import axios from 'axios'
import {
  getToken
} from '@/utils/auth'

const baseUrl = process.env.VUE_APP_BASE_API
export function uploadFunc(str, formData, resolve) {
  var url = baseUrl + str
  axios({
    url: url,
    method: 'POST',
    data: formData,
    timeout: 0, //无超时
    headers: {
      'Authorization': 'Bearer ' + getToken(),
      'Content-Type': 'multipart/form-data'
    }
  }).then(res => {
    resolve(res);
  })
}

2. .vue

    upload
      class="upload-button"
      action="none"
      :limit="1"
      :file-list="fileList"
      :auto-upload="false"
      :before-upload="beforeUpload"
      :on-change="setUploadData"
      accept=".xlsx,.xls"
    >
      "small" type="primary">点击上传
      
"tip" class="el-upload__tip">只能上传excel文件
import { uploadFunc } from "@/utils/upload";

    //文件上传
    setUploadData(file) {
      this.uploadFile = file;
      this.uploadUrl = URL.createObjectURL(this.uploadFile.raw);
      this.submitUpload();
    },

    //上传
    submitUpload() {
      let formData = new FormData();
      formData.append("examId", this.rowdata.examId);
      formData.append("file", this.uploadFile.raw);
      uploadFunc("/examresult/checkresult/importData?", formData, (ret) => {
        if(ret.status == 200){
            this.msgSuccess('导入成功');
            this.drawbox(this.rowdata);
        }
      });
    },

over