element-ui(vue)upload组件的http-request方法的使用
时间: 2024-05-07 15:23:14 浏览: 142
element-ui的upload组件提供了`http-request`属性,用于自定义上传文件的方法。这个方法会接收三个参数:文件对象、上传地址和附加参数。下面是一个简单的例子:
```html
<el-upload
action="/upload"
:http-request="uploadFile"
:on-success="onSuccess"
:on-error="onError"
drag
multiple>
</el-upload>
```
```javascript
methods: {
uploadFile(file, params) {
const formData = new FormData()
formData.append('file', file)
formData.append('name', params.name)
return axios.post('/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
},
onSuccess(response, file, fileList) {
console.log('上传成功', response, file, fileList)
},
onError(error, file, fileList) {
console.log('上传失败', error, file, fileList)
}
}
```
在上面的例子中,我们定义了一个`uploadFile`方法,接收文件对象和附加参数,使用`axios`发送一个POST请求,将文件和参数放在`FormData`里面,设置`Content-Type`为`multipart/form-data`,最后返回一个Promise对象。
在`on-success`和`on-error`事件中,我们可以处理上传成功或失败的情况。其中,`on-success`会接收三个参数:响应数据、文件对象和当前文件列表;`on-error`会接收两个参数:错误对象和当前文件对象。
需要注意的是,`http-request`方法必须返回一个Promise对象,并且必须在上传成功或失败时调用`resolve`或`reject`方法,否则上传状态可能会出现异常。
阅读全文