vue+elementui el-upload上传文件携带参数

  • Post author:
  • Post category:vue
//template里面写
<el-upload
                  ref="upload"
                  style="display:inline;margin-left:10px;"
                  action="url"
                  :auto-upload="false"
                  :multiple="false"
                  :show-file-list="false"
                  :before-upload="beforeUpload"
                  :on-change="changeFile"
                  accept=".xlsx,.xls"
                  :file-list="fileList">
</el-upload>
//某个js文件,fetch要引入,公共的ajax
export function parsingExcelAddData (data, setId) {
  return fetch({
    url: '',
    method: 'post',  // 方式一定是post
    headers: {
      'Content-Type': 'multipart/form-data',
      'setId': setId      //放到formData里后端拿不到,所以放到请求头里了
    },
    data: data    // 参数需要是单一的formData形式
  })
}
//vue文件的js里面methods里写如下方法
beforeUpload(file) {
      let filename = file.name
      let arr = filename.split('.')
      if (arr[1] !== 'xls' && arr[1] !== 'xlsx') {
        this.$message.error('上传文件只能是 excel/xls 格式!')
        return false
      }
      return arr
},
changeFile(file,fileList) {
      let fd = new FormData();
      fd.append('file',file.raw);//传文件
      let self = this
      parsingExcelAddData(fd,this.dataObj.setId).then(function(res){
        if (res.data.success) {
          self.$message({
            type: 'success',
            message: '上传成功'
          })
          self.currentNodeData(self.dataObj.setId)  //此方法是重新刷数据,可以自己写
        } else {
          self.$message({
            type: 'warning',
            message: res.data.msg
          })
          return false
        }
      })
}

 


版权声明:本文为weixin_43173924原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。