element上传多图到服务器
时间: 2023-08-16 15:08:18 浏览: 73
多张图片上传到服务器
要实现element上传多图到服务器,可以使用以下步骤:
1.在前端使用element-ui的上传组件,设置multiple属性为true,允许用户上传多张图片。
2.在上传组件的change事件中获取用户选择的图片文件,使用FormData对象将图片文件封装成表单数据。
3.使用axios或其他网络请求库将表单数据发送到服务器端。
4.在服务器端接收到表单数据后,解析出图片文件并保存到服务器的指定文件夹中。
下面是一个简单的示例代码:
前端代码:
```html
<el-upload
action="/api/upload"
:multiple="true"
:headers="{ 'Authorization': 'Bearer ' + token }"
:on-change="handleUploadChange"
>
<el-button type="primary">上传图片</el-button>
</el-upload>
```
```javascript
import axios from 'axios'
export default {
methods: {
handleUploadChange (fileList) {
const formData = new FormData()
fileList.forEach(file => {
formData.append('files', file.raw)
})
axios.post('/api/upload', formData)
.then(response => {
console.log(response.data)
})
.catch(error => {
console.log(error)
})
}
}
}
```
后端代码(使用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, '/path/to/upload/folder')
},
filename: function (req, file, cb) {
cb(null, Date.now() + '-' + file.originalname)
}
})
const upload = multer({ storage })
app.post('/api/upload', upload.array('files'), (req, res) => {
console.log(req.files) // 打印上传的文件信息
res.json({ message: '上传成功' })
})
app.listen(3000, () => {
console.log('Server started at http://localhost:3000')
})
```
在上面的示例代码中,multer是Node.js的一个中间件,用于处理文件上传。通过设置multer的diskStorage选项,可以指定文件保存的目录和文件名。在Express中,可以通过upload.array('files')来处理上传的多张图片文件。最后,将上传成功的消息返回给前端。
阅读全文