如何利用Vue3和element-plus实现图片上传组件
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章将为大家详细讲解有关如何利用Vue3和element-plus实现图片上传组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言element-plus 提
千家信息网最后更新 2025年02月23日如何利用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安全错误
数据库的锁怎样保障安全
如何在钉钉上建立试题数据库
广东节能软件开发业务
ps5如何看登录的服务器
校园食堂软件开发公司
时序数据库流式数据库
wow六零数据库
计算机网络技术专业培养目标
网络安全与国家信息化安全
数据库中求解10
网络安全日志数据分析
从服务器的数据库导入到本地
数据库技术有啥用
爱思助手 全恢复数据库
南京溧水软件开发
科创板加军工加网络安全概念股
数据库实验报告 安全性语言
国家网络安全知识书签
高一信息网络技术教案
奉贤区项目数据库销售价格
网络安全24
中国网络安全行业知名公司
五菱气车厂软件开发中心
数据库筛选器
中兴终端软件开发
电商erp软件开发服务报价
北京阿里云服务器ip是什么意思
数据库实验报告 安全性语言
逃离塔科夫所有服务器图片
软件开发代码编程小技巧
数据源和数据库