当前位置:实例文章 » HTML/CSS实例» [文章]vue3 - element-plus 上传各种 word pdf 文件、图片视频并上传到服务器功能效果,示例代码开箱即用。

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

其他信息

其他资源

Top