element-plus的upload实现上传文件给后端
时间: 2023-11-21 08:06:22 浏览: 241
好的,对于element-plus的upload组件,可以通过以下步骤来实现上传文件给后端:
1. 首先,在前端页面中引入element-plus组件库以及axios库:
```html
<!-- 引入element-plus组件库 -->
<link rel="stylesheet" href="https://unpkg.com/element-plus/lib/theme-chalk/index.css">
<script src="https://unpkg.com/vue@next"></script>
<script src="https://unpkg.com/element-plus/lib/index.full.js"></script>
<!-- 引入axios库 -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
```
2. 在前端页面中使用upload组件,进行文件上传:
```html
<template>
<el-upload
class="upload-demo"
action="http://localhost:3000/upload" // 设置上传文件的接口地址
:on-success="handleSuccess" // 设置上传成功的回调函数
:before-upload="beforeUpload" // 设置上传前的回调函数
:file-list="fileList" // 绑定文件列表数据
multiple>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const fileList = ref([]);
const beforeUpload = (file) => {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上传头像图片只能是 JPG/PNG 格式!');
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return isJPG && isLt2M;
};
const handleSuccess = (response, file, fileList) => {
console.log(response);
console.log(file);
console.log(fileList);
this.$message.success('上传成功!');
};
return {
fileList,
beforeUpload,
handleSuccess
};
}
};
</script>
```
3. 在后端服务器中,可以使用Node.js的express框架来处理上传文件的请求,具体代码如下:
```javascript
const express = require('express');
const multer = require('multer');
const app = express();
// 设置上传文件的存储位置和文件名
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads');
},
filename: function (req, file, cb) {
cb(null, Date.now() + '-' + file.originalname);
}
});
const upload = multer({ storage: storage });
// 处理上传文件的请求
app.post('/upload', upload.single('file'), (req, res) => {
console.log(req.file);
res.send('上传成功!');
});
app.listen(3000, () => {
console.log('服务器已启动!');
});
```
在上述代码中,设置了上传文件的存储位置和文件名,并使用multer中间件来处理上传文件的请求,最后返回上传成功的消息。
这样,在前端页面中选择文件后点击上传按钮,就可以将文件上传给后端服务器了。
阅读全文