vue上传zip文件给后端
时间: 2023-12-03 21:04:44 浏览: 29
你可以使用 FormData 对象来将文件以二进制数据的形式上传到后端。以下是一个使用 Vue.js 和 axios 库实现文件上传的示例代码:
```html
<template>
<div>
<input type="file" ref="fileInput" @change="uploadFile">
</div>
</template>
<script>
import axios from 'axios';
export default {
methods: {
uploadFile() {
const file = this.$refs.fileInput.files[0];
const formData = new FormData();
formData.append('file', file);
axios.post('/api/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});
}
}
}
</script>
```
在这个示例中,我们在模板中添加了一个文件上传的输入框。当用户选择文件后,我们通过 `refs` 属性获取到该输入框的 DOM 对象,然后通过修改 `change` 事件的响应函数来实现文件上传。在响应函数中,我们使用 `FormData` 对象来创建一个包含文件数据的表单,然后使用 `axios` 库的 `post` 方法将表单数据上传到后端。需要注意的是,我们需要设置请求头的 `Content-Type` 为 `multipart/form-data`,这样后端才能正确解析上传的文件数据。