今天在使用element的文件模块时,使用了手动上传的方法,官网上的示例是直接使用this.$refs.upload.submit()直接请求后台,我测试过了,是可以获取到数据的,但是我不知道这个方法如何处理后台传过来的参数,就产生了一个自定义axios方法上传文件的想法,这里面的核心主要是要获取到上传的文件对象。
- 模版部分
<el-upload
class="upload-demo"
ref="upload"
:on-preview="handlePreview"
:on-remove="handleRemove"
: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>
- 自定义方法上传文件
submitUpload() {
let file = this.$refs.upload.uploadFiles.pop().raw;
let formData = new FormData();
formData.append("file",file);
this.$axios.post("/upload",formData).then(res=>{
console.log(res.data);
}),