微信小程序实现图片上传

article/2025/9/16 14:20:26

微信小程序实现图片上传

最近做了个小程序,涉及到了图片上传的功能,今天给大家详细介绍下如何实现小程序图片上传,话不多说先上代码

首先是静态布局和样式部分

.wxml代码部分

<view class='load-img'><view class='load-box'><view class='img-item' wx:for="{{fileList}}" wx:key="index" ><image src="{{item.path}}" data-src="{{item}}" mode="aspectFill" data-list="{{fileList}}" bindtap=""></image><icon class='icon' type="clear" size="20" color='#EF4444' catchtap='_onDelTab' data-idx="{{index}}" wx:if="{{!prevent}}"/></view><image class='img-add' bindtap='_addImg' wx:if="{{!prevent}}"></image></view></view>

.wxss代码部分

/* 上传图片 */
.load-name {height: 80rpx;line-height: 80rpx;font-size: 30rpx;}.load-box {display: flex;flex-direction: row;flex-wrap: wrap;}.img-item, .img-add {position: relative;width: 140rpx;height: 140rpx;margin: 20rpx;}.img-add {border: 1px solid #ccc;}.img-add:after{width: 1rpx;height: 50rpx;content: " ";position: absolute;top: 50%;left: 50%;-webkit-transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);transform: translate(-50%, -50%);background-color: #ccc;}.img-add:before{position: absolute;top: 50%;right: 31%;width: 50rpx;height: 1rpx;content: " ";display: inline-block;background-color: #ccc;  }.img-item {margin-right: 20rpx;}.img-item image {width: 100%;height: 100%;border-radius: 10rpx;}.icon {position: absolute;top: 0;right: 0;}

以上这些基本代码就可以完成图片上传,显示,删除等样式布局

下面是js的部分,我已详细备注~~~

先来看下完整的代码

/*** 小程序图片上传* 组件接受参数* fileList  图片数组* prevent 控制是否可新增* 方法* bindimageChange 选择图片后触发* bindimageDel  删除图片后触发* */
const app = getApp();
Component({properties: {fileList: {type: Array},prevent: {type: Boolean,value: false}},data: {fileList: []},ready() {},methods: {// 点击加号进入手机相册,并进行图片选择_addImg() {let _this = this;// 此方法为微信小程序自带api 详情访问https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.htmlwx.chooseImage({count: 5,success(res) {//此处会返回图片暂存路径和文件大小const data = res.tempFiles;_this.setFile(data)}})},setFile (data) {// 将wx.chooseImage返回的数据进行扩展data.map((item, index) => {// 通过路径截取文件后缀名const fileFormat = item.path.substring(item.path.lastIndexOf(".") + 1, item.path.length);// wx.getFileSystemManager()小程序文件管理器api,可以将通过文件路径将其转换成64编码const fileManager = wx.getFileSystemManager();const base64 = fileManager.readFileSync(item.path, 'base64');item.fileContent = base64;item.fileSize = item.size;// 通过时间获取随机13位随机数并且拼接文件后缀进行文件命名item.fileName = this.getFileName(13) + '.' + fileFormat;// 此处操作是用来进行选中图片显示的,只有这样拼接才能显示base64编码的路径item.path = `data:image/${fileFormat};base64,${base64}`;;})this.setData({ fileList: this.data.fileList.concat(data)});// 此处操作是用来将获取到的文件数据传递给父组件进行文件上传this.triggerEvent('imageChange', this.data.fileList)},// 随机生成文件名getFileName (m) {m = m > 13 ? 13 : m;var num = new Date().getTime();return num.toString().substring(13 - m);},点击进行图片删除_onDelTab(e) {// 获取图片索引let idx = e.currentTarget.dataset.idx;let delFile = this.data.fileList[idx];console.log(delFile);this.data.fileList.splice(idx, 1);this.setData({fileList: this.data.fileList})this.triggerEvent('imageDel', delFile);}
})

代码里对代码的备注已经很明确了,大家仔细扒一下,根据的自己的项目进行相应的调整,基本上都是没问题的,~~不要直接直接粘贴不复置,我是直接在我的项目中直接拿过来的代码,直接粘贴复制肯定是不行的!!!~~

大家需要注意的是这里

在这里插入图片描述
通常在真机上点击选中图片后wx.chooseImage方法中返回的文件路径是wxfile:开头的路径,这样的路径想直接转成base64,上面的方式是可以实现的,我也是查了很多资料才找到的解决办法。

再一个需要注意的是image src属性想显示base64格式的图片要进行字符串拼接才可以正常显示如下图

在这里插入图片描述
好啦这些就是我小程序上传图片的操作,这些只是我对日常工作的积累,不喜勿喷 不喜勿喷 不喜勿喷 重要的事情说三遍大家仔细看下代码理解用法,还是很简单的,看都不看想白漂肯定是不行的呦~~~~~~~~~


http://chatgpt.dhexx.cn/article/ehTgnEgJ.shtml

相关文章

李宏毅《深度学习》:深度学习入门实例

1、Keras 在这里我们推荐使用keras进行深度学习编程&#xff0c;比起tensorflow来说更容易学习&#xff0c;操作简单&#xff0c; 2、手写识别实例 这里手写识别的数据集来自于minst&#xff0c;一个非常常用的数据集&#xff0c;从keras里可以直接导入 第一步&#xff0c;定…

零基础小白深度学习入门篇

觉得小编不错 请关注 加点赞 谢谢 一、人工智能和新科技革命 2017年,围棋界发生了一件比较重大的事,Master(AlphaGo)以60连胜横扫天下,击败各路世界冠军,人工智能以气势如虹的姿态出现在我们人类面前。围棋曾经一度被称为“人类智慧的堡垒”,如今,这座堡垒也随之成为…

学深度学习入门

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向&#xff0c;它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。 深度学习是学习样本数据的内在规律和表示层次&#xff0c;这些学习过程中获得的信息对…

《深度学习入门-基于Python的理论与实现》第四章带读 – 神经网络的学习

文章目录 4.1 从数据中学习4.2 损失函数a.均方误差b.交叉熵误差c.mini-batch学习d.为何要设定损失函数 4.3 梯度梯度法 4.4 神经网络的学习步骤 开篇介绍&#xff1a;《深度学习入门-基于Python的理论与实现》书籍介绍第一章&#xff1a;《深度学习入门-基于Python的理论与实现…

机器学习与深度学习入门篇

一、机器学习 1.机器学习是什么&#xff1f; 机器学习是将无序数据转换为价值的方法。 2.机器学习的价值 从数据中抽取规律&#xff0c;并预测未来。 3.机器学习的应用 &#xff08;1&#xff09;分类问题 图像识别、垃圾邮件识别。 &#xff08;2&#xff09;回归问题 股…

深度学习入门:基于Python的理论与实现①

深度学习入门&#xff1a;基于Python的理论与实现① 机器学习的三大要素第一章python入门1.Numpy1.1.numpy的N维数组1.2.numpy广播1.3访问元素 2.Matplotlib 第二章感知机1.感知机是什么2.感知机的实现2.1简单的实现2.2导入权重和偏置 3.多层感知机 第三章神经网络1.从感知机到…

深度学习入门与实战

数学基础 线性代数 深度学习背后的核心是标量、向量、矩阵和张量这 4 种数据结构&#xff0c;通过使用这些数据结构&#xff0c;以编程的方式解决所有基本的线性代数问题。 标量 标量&#xff0c;实际上就是一个单独的数。 向量及其运算 一个向量表示一组有序排列&#x…

深度学习入门:基于Python的理论与实现——第一章Python入门

本文为深度学习入门&#xff1a;基于Python的理论与实现的学习笔记&#xff0c;由于笔者已有matalb、c\c&#xff0c;java相关语言基础&#xff0c;故只记录不同之处需要注意的地方&#xff0c;供给有其他有语言基础&#xff0c;没学过python但研究方向为机器学习等分支方向的同…

《深度学习入门-基于Python的理论与实现》书籍介绍

写在开头&#xff0c;为什么要写这个专题 深度学习入门知识&#xff0c;无非就是神经网络、CNN、RNN等。很早之前就想出一个专题&#xff0c;用于梳理深度学习入门知识&#xff0c;方便形成更好的系统。 经过多方调研、思考&#xff0c;最终决定通过带读经典书籍的方式展开。…

深度学习入门(鱼书)学习笔记

第1章 Python入门 第2章 感知机 第3章 神经网络 3.2.激活函数 sigmoid函数&#xff1a; h ( x ) 1 1 exp ⁡ ( − x ) h(x)\frac{1}{1\exp(-x)} h(x)1exp(−x)1​ ReLU&#xff08;Rectified Linear Unit&#xff09;函数&#xff1a; h ( x ) { x , ( x > 0 ) 0 ,…

机器学习之深度学习入门

个人公众号 yk 坤帝 获取更多学习资料&#xff0c;学习建议 本文用浅显易懂的语言精准概括了机器学习的相关知识&#xff0c;内容全面&#xff0c;总结到位&#xff0c;剖析了机器学习的what&#xff0c;who&#xff0c;when, where, how&#xff0c;以及why等相关问题。从机器…

深度学习入门极简教程(一)

深度学习入门极简教程&#xff08;一&#xff09; 摘要&#xff1a; 当你和女朋友在路边手拉手一起约会的时候&#xff0c;你可曾想&#xff0c;你们之间早已碰撞出了一种神秘的智慧–深度学习。恋爱容易&#xff0c;相处不易&#xff0c;不断磨合&#xff0c;打造你们的默契&a…

简单易懂的讲解深度学习(入门系列之一)

摘要&#xff1a; 当你和女朋友在路边手拉手一起约会的时候&#xff0c;你可曾想&#xff0c;你们之间早已碰撞出了一种神秘的智慧–深度学习。恋爱容易&#xff0c;相处不易&#xff0c;不断磨合&#xff0c;打造你们的默契&#xff0c;最终才能决定你们是否在一起。深度学习也…

深度学习入门

一、什么是机器学习 人工智能是使一部机器像人一样进行感知、认知、决策、执行的人工程序或系统。其实现的一种方法是机器学习。而深度学习是机器学习的一种&#xff0c;也是近年来较为热门的方法。 人工智能主要有如下三个层面 计算智能能存能算感知智能能听会说&#xff0…

深度学习怎么入门?零基础快速入门深度学习

我根据自己的入门和工作经验&#xff0c;总结了一份超详细的保姆级深度学习从零入门路线&#xff0c;分享给大家; 整个路线分为五个部分&#xff1a; 基础知识;机器学习理论入门;机器学习竞赛实战;深度学习理论入门;深度学习竞赛实战; 1.基础知识学习 首先&#xff0c;我们来…

初学者如何快速入门深度学习?

随着人工智能热潮的再次袭来&#xff0c;深度学习也一度走进大家的视线。相信大家对于深度学习并不陌生&#xff0c;这是人工智能的核心技术之一。因此 要想学习人工智能&#xff0c;就必须要掌握好深度学习的内容。那么小白如何快速入门深度学习呢?下面我就来讲讲入门深度学习…

PyTorch 深度学习入门

&#x1f482; 个人网站:【 海拥】【萌怪大冒险】【2048】&#x1f91f; 风趣幽默的前端学习课程&#xff1a;&#x1f449;28个案例趣学前端&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼大军】&#x1f4ac; 免费且实用的计算机相关知识题库&…

深度学习入门(看了就会)

什么是深度学习呢&#xff1f; 简单来说就是当你拥有一个数据集的时候&#xff0c;若你想处理它&#xff0c;可能你的反应是for遍历一遍。但深度学习是不需要的。 首先介绍一下深度学习的一些基本概念。 对于一张图片的储存&#xff0c;是分为了三个二维数组&#xff0c;分别是…

深度学习知识点全面总结

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;大数据专业硕士在读&#xff0c;CSDN人工智能领域博客专家&#xff0c;阿里云专家博主&#xff0c;专注大数据与人工智能知识分享&#xff0c;公众号&#xff1a;GoAI的学习小屋&#xff0c;免费分享书籍、简历、导图等资料&a…

爬虫 | 破解APP中阿里云滑动验证码

点击“Python编程与实战”&#xff0c;选择“置顶公众号” 第一时间获取 Python 技术干货&#xff01; 考虑这样一个场景&#xff0c;当你在app端提交订单/登录的时候有一个滑动验证码怎么处理&#xff1f; 一般我们会采用自动化浏览器完成这样的抓取&#xff0c;但是效率太低。…