在methods方法里写axios请求上传文件
时间: 2023-10-24 07:13:14 浏览: 83
好的,以下是一个基于axios库上传文件的示例代码:
```javascript
methods: {
async uploadFile() {
const file = this.$refs.fileInput.files[0]; // 获取文件对象
const formData = new FormData(); // 创建formData对象
formData.append('file', file); // 将文件对象添加到formData中
try {
const response = await axios.post('/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data' // 设置请求头为multipart/form-data
}
});
console.log(response.data); // 打印上传成功后的响应数据
} catch (error) {
console.error(error); // 打印上传失败的错误信息
}
}
}
```
在上面的代码中,我们首先通过`this.$refs.fileInput.files[0]`获取到用户选择的文件对象,然后创建一个`FormData`对象,并将文件对象添加到其中。接着使用`axios.post`方法发送POST请求,其中`formData`对象作为第二个参数传递,同时需要设置请求头的`Content-Type`为`multipart/form-data`,以告诉服务器这是一个文件上传请求。最后,我们可以通过`response.data`获取上传成功后的响应数据,或者通过`catch`捕获上传失败时的错误信息。
需要注意的是,在模板中需要添加一个文件选择框,并通过`ref`属性获取到它的引用,示例如下:
```html
<template>
<div>
<input type="file" ref="fileInput">
<button @click="uploadFile">上传文件</button>
</div>
</template>
```
阅读全文