vue3 el-upload上传excel文件给后端传file
时间: 2023-09-03 13:10:58 浏览: 216
你可以使用 `el-upload` 组件来上传文件,然后在上传成功的回调函数中获取到文件对象,并将其传递给后端。
以下是一个基本的示例:
```vue
<template>
<el-upload
action="/api/upload"
:on-success="handleSuccess"
:before-upload="beforeUpload"
>
<el-button>上传文件</el-button>
</el-upload>
</template>
<script>
export default {
methods: {
handleSuccess(response, file) {
console.log('上传成功', response, file)
},
beforeUpload(file) {
// 如果需要限制上传的文件类型,可以在这里进行判断
console.log('准备上传', file)
}
}
}
</script>
```
在以上示例中,`action` 属性指定了上传文件的接口地址,`on-success` 属性指定了上传成功后的回调函数,`before-upload` 属性指定了上传前的回调函数。你需要根据自己的需求修改这些属性的值。
在 `handleSuccess` 回调函数中,你可以获取到后端返回的数据和上传的文件对象。你可以将文件对象传递给后端,例如使用 `axios` 发送 POST 请求:
```js
import axios from 'axios'
handleSuccess(response, file) {
console.log('上传成功', response, file)
const formData = new FormData()
formData.append('file', file)
axios.post('/api/upload-file', formData)
.then(res => {
console.log('后端返回数据', res.data)
})
}
```
在以上代码中,我们将文件对象添加到 `FormData` 对象中,并使用 `axios` 发送 POST 请求,将该 `FormData` 对象作为参数传递给后端接口 `/api/upload-file`。你需要根据自己的接口地址和请求方式进行修改。
阅读全文