element-ui upload自定义formdata上传文件和参数

 
<el-upload list-type="text" action="" :http-request="HandleHttpRequestDescFile" :on-remove="handleRemoveDescFile" :file-list="this.fileList" ref="upload">
            <el-button size="small" type="primary" title="需求附件">点击上传PBC文件</el-button>
</el-upload>
 
//上传
    HandleHttpRequestDescFile(a){
      let fileName = a.file.name;
      let pos = fileName.lastIndexOf(".");
      let lastName = fileName.substring(pos, fileName.length);
      if (lastName.toLowerCase() !== ".xlsx") {
        this.msgError("文件必须为.xlsx类型")
        this.fileList = []
        this.form.file = null
      } else {
        this.fileList = []
        this.form.file = a.file
        this.fileList.push(a.file)
      }
    },
 
//删除方法
    handleRemoveDescFile(file) {
      this.fileList = []
      this.form.file = null
      // if(this.descFile != ''){
      //   this.descFile.pop(file);
      // }
    },
 
/** 提交按钮 */
    submitForm() {
      console.log(this.fileList)
      let msg = ''
      if(this.form.file == null){
        msg = '请上传PCB文件!'
      }
      if( this.form.invCode == ''|| this.form.invCode == undefined || this.form.invCode == null){
        msg = '物料编码不能为空!'
      }
      if (msg != '') {
        this.msgError(msg)
            return
      }
      var formData = new FormData();
      formData.append('files',this.form.file);
      formData.append('invCode',this.form.invCode);
      uploadFile(formData).then(res=>{
        if(res.code == 200){
          this.msgSuccess("成功");
          this.open = false;
          this.getList();
        }else{
          this.$message({ type: 'error', message: res.errmsg });
        }
      });
    },
 
 
 
//上传
export function uploadFile(data) {
    let config = {
      headers: {
        "Content-Type": "multipart/form-data"
      }
    }
    return request({
      url: '/api/smt/record/inv/files',
      method: 'POST',
      data: data,
      headers: config,
    })
  }
posted @ 2022-12-10 14:16  雨后丶云初霁  阅读(1019)  评论(8编辑  收藏  举报