使用组件,然后设置http-request,覆盖默认的上传行为,可以自定义上传的实现
<el-upload action="#" :show-file-list="false" :http-request="httpRequest">
<el-button type="primary">选取文件</el-button>
</el-upload>
methods方法写法如下,fileResult得到的即为Base64格式,主要用到的是FileReader这个API
httpRequest(data) {
// 调用转方法base64
this.getBase64(data.file).then(resBase64 => {
this.formJar.fileBase64 = resBase64.split(',')[1]
})
this.$message.success('文件上传成功')
},
// 转base64码
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader()
let fileResult = ''
reader.readAsDataURL(file)
// 开始转
reader.onload = () => {
fileResult = reader.result
}
// 转 失败
reader.onerror = (error) => {
reject(error)
}
// 转 结束
reader.onloadend = () => {
this.formJar.fileName = file.name
resolve(fileResult)
}
})
}
最后把fileResult 传给后台即可