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 文件、图片和视频的上传功能。我们创建了一个文件上传组件,并在服务器端实现了文件的上传逻辑。希望这篇文章能够帮助你快速上手这个功能!