Vue vant-ui使用van-uploader实现头像图片上传

本文主要是介绍Vue vant-ui使用van-uploader实现头像图片上传,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:

f99e01d836654111b7f4522b1e32eb30.png

221a1f6710644f59903bf8beb1f10646.png

项目中是使用有赞vant-ui框架实现的头像上传替换功能

代码布局结构: 

<van-row class="sendInfo"><van-col span="24" class="flex colorf topInfo p20"><!--左边头像部分--><van-uploader :after-read="afterCard" :before-read="beforeRead"  accept="image/*" class="arrart":max-size="10240 * 1024" @oversize="onOversize"><img class="arrart":src=" centerInfo.iconUrl ? $baseImgUrl + centerInfo.iconUrl : require('../../assets/img/touciang.png')" /><!-- <van-tag type="danger" class="vip" size="medium">VIP</van-tag> --><div class="personCompany">{{loginType==0?"个人用户":"企业用户"}}</div></van-uploader><!--右边部分--><div class="ml30"><div class="flex rightVip"><span class="fontSize36 color0 mt20 van-ellipsis">郝先生</span><img :src="vipImg" width="46" height="20" class="mt20" style="padding-left:12px;" v-show="centerInfo.memberLevel==1" /></div><div class="flex mt30"><van-icon class="editIcon vmd mr10" color="#999" name="edit" /><div class="fontSize30 color9 personInfo van-multi-ellipsis--l2">优质船主</div></div></div></van-col>
</van-row>

样式:

.flex {display: flex;width: 100%;
}
.topInfo {align-items: center;background-color: #fff;// border-radius: 24px;
}
.arrart {width: 128px;height: 128px;border-radius: 50%;
}
.personCompany {position: absolute;top: 100px;left: 0px;font-size: 0.4rem;width: 128px;height: 40px;text-align: center;background: #333440;border-radius: 50px;color: #ffdd99;// padding:0px 6px;line-height: 40px;
}
.rightVip {width: 552px;align-items: center;
}

主要方法:这里用到了封装的图片压缩封装之后再去上传图片this.$imgUpload.imgZip()

//定义存储对象
centerInfo: {},
// 限制上传大小图片onOversize(file) {this.$toast("文件大小不能超过 10M");},// 上传之前的图片验证beforeRead(file) {if (this.$utils.isImage(file.name)) {return true;} else {this.$toast.fail("请上传图片格式");}},// 头像上传  文件上传完毕后会触发 after-read 回调函数,获取到对应的 file 对象。afterCard(file) {this.$imgUpload.imgZip(file).then(resData => {const formData = new FormData();formData.append("file", resData);// 请求接口上传图片到服务器uploadImg(formData).then(res => {if (res.code == 200) {this.centerInfo.iconUrl = res.data;let params = {iconUrl: res.data,id: this.id,loginType: this.loginType};updateMineIconUrl(params).then(resImg => {if (resImg.code == 200) {this.$toast("头像修改成功");} else {this.$toast(res.msg);}}).catch(error => {});} else {this.$toast(res.msg);}});});},

关于图片压缩方法、拍照上传的图片被旋转 90 度问题解决方法 后期会更新上去

Uploader 在部分安卓机型上无法上传图片?

Uploader 采用了 HTML 原生的 <input type="file /> 标签进行上传,能否上传取决于当前系统和浏览器的兼容性。当遇到无法上传的问题时,一般有以下几种情况:

  1. 遇到了安卓 App WebView 的兼容性问题,需要在安卓原生代码中进行兼容,可以参考此文章。
  2. 图片格式不正确,在当前系统/浏览器中无法识别,比如 webp 或 heic 格式。
  3. 其他浏览器兼容性问题。

发文不易,点赞、评论、收藏、关注支持一下呗!

这篇关于Vue vant-ui使用van-uploader实现头像图片上传的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409160

相关文章

golang版本升级如何实现

《golang版本升级如何实现》:本文主要介绍golang版本升级如何实现问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录golanwww.chinasem.cng版本升级linux上golang版本升级删除golang旧版本安装golang最新版本总结gola

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os