vue3 - element-plus 上传各种 word pdf 文件、图片视频并上传到服务器功能效果,示例代码开箱即用。
发布人:shili8
发布时间:2025-03-10 03:27
阅读次数:0
**Vue3 + Element-Plus上传文件功能**
在实际开发中,我们经常需要实现文件上传的功能。Element-Plus 提供了一个方便易用的 `ElUpload` 组件,可以轻松地实现各种类型文件的上传功能。在本文中,我们将展示如何使用 Vue3 和 Element-Plus 实现 word、pdf 文件、图片和视频的上传功能。
###依赖安装首先,需要在项目中安装必要的依赖:
bashnpm install element-plus @element-plus/icons-vue axios
### 组件注册接下来,在 `main.js` 中注册 Element-Plus 和相关组件:
javascriptimport { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import enUSLocale from 'element-plus/lib/locale/lang/en-US'
import zhCNLocale from 'element-plus/lib/locale/lang/zh-CN'
const app = createApp(App)
app.use(ElementPlus, {
locale: {
enUS: enUSLocale,
zhCN: zhCNLocale }
})
app.mount('#app')
### 文件上传组件现在,我们可以创建一个文件上传组件 `UploadFile.vue`:
vue<template>
<div class="upload-file">
<el-upload :action="uploadUrl"
list-type="picture-card"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-change="handleChange"
:file-list="fileList"
:limit="3"
:auto-upload="false"
:multiple="true">
<i class="el-icon-plus" />
</el-upload>
</div>
</template>
<script>
export default {
name: 'UploadFile',
data() {
return {
fileList: []
}
},
computed: {
uploadUrl() {
//上传地址 return '/api/upload'
}
},
methods: {
handlePreview(file) {
console.log(file)
},
handleRemove(file, fileList) {
console.log(fileList)
},
handleChange(file, fileList) {
this.fileList = fileList }
}
}
</script>
<style scoped>
.upload-file {
margin-top:20px;
}
</style>
### 文件上传逻辑接下来,我们需要在服务器端实现文件的上传逻辑。我们使用 Node.js 和 Express 来创建一个简单的 API:
javascriptconst express = require('express')
const multer = require('multer')
const app = express()
//上传配置const upload = multer({
dest: './uploads/', //上传目录 limits: { fileSize:10 *1024 *1024 } // 文件大小限制})
app.post('/api/upload', upload.array('file'), (req, res) => {
const files = req.files if (!files || files.length ===0) {
return res.status(400).send({ message: '请上传文件' })
}
files.forEach((file) => {
console.log(file)
})
res.send({ message: '上传成功' })
})
app.listen(3000, () => {
console.log('Server listening on port3000')
})
### 总结在本文中,我们展示了如何使用 Vue3 和 Element-Plus 实现 word、pdf 文件、图片和视频的上传功能。我们创建了一个文件上传组件,并在服务器端实现了文件的上传逻辑。希望这篇文章能够帮助你快速上手这个功能!

