如何利用Vue3和element-plus实现图片上传组件
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章将为大家详细讲解有关如何利用Vue3和element-plus实现图片上传组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言element-plus 提
千家信息网最后更新 2025年01月16日如何利用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安全错误
数据库的锁怎样保障安全
gmail邮件服务器地址
扎牢网络安全之网
伍人行网络技术
重庆大学生网络技术
联想 服务器 管理端口
遍历url中的数据库
长春软件开发培训班学费多少
淘宝服务市场软件开发
着力促进网络安全长远发展
邮箱服务器租用
网络安全防范的基本措施
造成数据库安全的三个因素
网络安全法最多罚款多少
校园网络安全画画
爆点软件开发
美国新网络安全战略
软件开发能拿多少钱
tracer服务器是什么
苏州大垚互联网科技
导入数据库的excel格式
淘宝批量修改软件开发教程
请你谈谈网络安全防范
raid服务器的标配
秒针滴答网络技术有限公司
数字可存储在数据库中的数据有
软件开发专业适合做什么工作
学银在线数据库技术与应用答案
洛阳跑跑网络技术有限公司地址
梁溪区信息化软件开发销售
南阳虎奔网络技术有限公司