el-upload文件并上传参数
时间: 2023-09-04 21:10:57 浏览: 100
El-Upload 是一个基于 Element UI 的上传组件,它可以用于上传文件、图片等类型的资源。下面是一个使用 El-Upload 组件上传文件并携带参数的示例:
```html
<template>
<el-upload
class="upload-demo"
action="/api/upload"
:data="{ param1: 'value1', param2: 'value2' }"
:on-success="handleSuccess"
:on-error="handleError"
:file-list="fileList"
:auto-upload="false"
:multiple="true">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</template>
<script>
export default {
data() {
return {
fileList: []
}
},
methods: {
handleSuccess(response, file, fileList) {
console.log(response)
},
handleError(err, file, fileList) {
console.error(err)
}
}
}
</script>
```
在上面的代码示例中,我们设置了 El-Upload 组件的 `action` 属性为上传文件的接口地址,`data` 属性为携带的参数,`on-success` 和 `on-error` 分别为上传成功和失败的回调函数,`file-list` 为已上传的文件列表,`auto-upload` 表示是否自动上传,`multiple` 表示是否支持多文件上传。
在后端接口中,可以通过解析请求的参数来获取前端携带的参数。例如,在 Node.js 中,可以使用 `multer` 中间件来解析上传的文件和参数:
```javascript
const express = require('express')
const multer = require('multer')
const app = express()
const upload = multer({ dest: 'uploads/' })
app.post('/api/upload', upload.single('file'), (req, res) => {
const { param1, param2 } = req.body
console.log(param1, param2)
res.send({ code: 0, message: '上传成功' })
})
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000')
})
```
在上面的代码示例中,我们使用 `multer` 中间件来解析上传的文件和参数,其中 `dest` 表示上传文件的保存路径,`single` 表示只上传单个文件,`file` 表示上传文件的字段名。在路由中,我们可以通过 `req.body` 来获取前端携带的参数。
阅读全文