如何利用Vue3和element-plus实现图片上传组件
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章将为大家详细讲解有关如何利用Vue3和element-plus实现图片上传组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言element-plus 提
千家信息网最后更新 2025年11月06日如何利用Vue3和element-plus实现图片上传组件
这篇文章将为大家详细讲解有关如何利用Vue3和element-plus实现图片上传组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
前言
element-plus 提供了 uploader 组件,但是不好定制化,所以自己又造了个轮子,实现了一个图片上传的组件,它的预期行为是:
1.还没上传图片时,显示上传卡片
2.上传图片时显示进度条,隐藏上传卡片
3.上传成功时显示图片缩略图,上传失败则显示失败提示
4.支持上传图片的预览和删除
具体如下图所示:

具体代码
图片上传
这里使用的图床是牛图网,无需注册,貌似也没有图片大小的限制,但是请不要上传违规图像。
import axios from "axios"import { ElMessage } from 'element-plus'const service = axios.create({ baseURL: "/image"})service.interceptors.response.use(response => { const code = response.data.code || 200 if (code === 200) { return response.data.data } let msg = response.data.code + " " + response.data.msg ElMessage.error(msg) return Promise.reject('上传图片失败:' + msg)})/** * 上传图片 * @param {File} file 图片文件 * @param {RefImpl} progress 上传进度 * @returns promise */function uploadImage(file, progress) { let formData = new FormData(); formData.append("file", file) return service({ url: "/upload", method: "post", data: formData, onUploadProgress(event) { let v = Math.round(event.loaded / event.total * 100) progress.value = v == 100 ? 80 : v }, })}export { uploadImage }这里使用 onUploadProgress 来监视上传进度,但是实际上直接使用计算出来的进度往往会和实际的存在很大的偏差,也就是说:即使你还在上传,axios 也会告诉你已经上传完了,所以这里把 100 的进度换成了 80,真正的 100 进度应该在服务器返回 url 时设置。
受到同源策略的限制,我们需要在 vue.config.js 中配置一下代理服务器:
module.exports = { devServer: { proxy: { "/image": { target: "https://niupic.com/api", pathRewrite: { "^/image": "" }, }, } }}上传组件
图片预览功能用的是 vue-easy-light-box,如果没有安装的话可以 npm install --save vue-easy-lightbox@next 安装一下。下面是具体代码:
在图片上传之前、上传完成和移除图片的时候都会触发相应的自定义事件,父级组件可以处理这些事件来设置图片 url。
关于"如何利用Vue3和element-plus实现图片上传组件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
图片
组件
进度
篇文章
事件
代码
卡片
实际
更多
服务器
服务
限制
不错
实用
很大
成功
不好
也就是
也就是说
偏差
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
角色包含固定数据库角色
bbs 数据库设计
手机怎么ftp服务器
福建刷单平台软件开发公司
网络安全校园日活动实施方案
一台服务器搭建hadoop集群
谁负责网络安全保护和监督管理
对日软件开发好吗
软件网络安全大数据专业
工程进度网络技术规程
监控的服务器地址
网络安全app模板
免费服务器安全卫士
python语言数据库开发
时时彩统计软件开发
软件开发部门内审问题
qq邮箱服务器设置
好用的jsp操作数据库控件
淘宝服务器有多少台
表格与数据库链接
河南三门峡直销软件开发价格
服务器管理口不通原因
数据库安装多个实例
网络安全教育主题班会ppt小学
数据库系统的功能包括哪四个
有服务器怎么做网站
网络安全防护职业规划
数据库如何刷数据进去
湖北综合软件开发报价表
淮北软件开发公司电话