用el-upload组件自定义上传按钮,并携带其余参数,且必传参数action 不报错
<template>
<el-col :span="6" :mode="uploadForm">
<el-form>
<el-form-item>
<el-upload
class="upload-demo"
ref="upload"
action="no"
:before-upload="doUpload"
:file-list="uploadForm.fileList"
:http-request="uploadOk"
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</el-form-item>
</el-form>
</el-col>
</template> <script>
import { mapGetters } from 'vuex'
import axios from 'axios'
export default {
name: "upload",
data() {
return {
uploadForm: {
deptName:'',
reimMent:'',
fileList:[]
}
};
},
computed:{
...mapGetters([
'username'
])
},
methods: {
doUpload(file){
},
submitUpload() {
this.$refs.upload.submit();
},
uploadOk(val){
let fd = new FormData();
fd.append('operator',this.username);
fd.append('reimment','李青');
fd.append('deptname','信息部');
fd.append('file',val.file);
// for(let i=0;i<this.files.length;i++){
// fd.append('file',this.files[i],this.files[i].name);
// }
axios.post(process.env.BASE_API+'/file/file',fd).then(res=>{
console.log(res)
})
}
}
}
</script> <style scoped> </style>
希望对你有帮助