tp5实现微信小程序多图片上传到服务器功能
前端  /  管理员 发布于 4年前   562
最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助。 1,小程序端: 在wxml文件中: 在js文件中: 2,我们注意到我的wx.request请求中Wx_SaveHomeWork方法是后台服务器的接收图片方法, 后边我会把这个方法展示出来, 3.tp5后台controller中: 这里说一下,max_id的作用,因为接受的是多张图片,相当于一次性要存储多条数据,所以用max_id对id进行自增,存储到数据库表,cid是我自己数据库逻辑需要用到的变量,可以不用考虑, 4.讲解的不够清楚,因为是自己写的,感受不到难点在哪里,我自己的难点是在小程序端的图片上传,用了for循环,循环上传的方法,其他的相对来说,逻辑比较简单。 总结 以上所述是小编给大家介绍的tp5实现微信小程序多图片上传到服务器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!Page({/** * 页面的初始数据*/data: { index: 0, multiIndex: [0, 0],//传到后台的课程分类cname:'', },/** * 生命周期函数--监听页面加载*/onLoad: function (options) { },/** * * 生命周期函数--监听页面初次渲染完成*/onReady: function () { },/** * 生命周期函数--监听页面显示*/onShow: function () { },/** * 生命周期函数--监听页面隐藏*/onHide: function () { },/** * 生命周期函数--监听页面卸载*/onUnload: function () { },/** * 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () { },/** * 页面上拉触底事件的处理函数*/onReachBottom: function () { },/** * 用户点击右上角分享*/onShareAppMessage: function () { },// 上传图片操作// 上传图片chooseImg: function (e) {var that = this;if(that.data.cname==''){ }else{var imgs = this.data.imgs;if (imgs.length >= 9) {this.setData({ lenMore: 1 }); setTimeout(function () { that.setData({ lenMore: 0 }); }, 2500);return false; } wx.chooseImage({// count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片var tempFilePaths = res.tempFilePaths;var imgs = that.data.imgs;// console.log(tempFilePaths + '----');for (var i = 0; i < tempFilePaths.length; i++) {if (imgs.length >= 9) { that.setData({ imgs: imgs });return false; } else { imgs.push(tempFilePaths[i]); } }// console.log(imgs); that.setData({ imgs: imgs, });//循环把图片上传到服务器for (var i = 0; i < imgs.length; i++) { wx.uploadFile({ url: url + 'Wx_SaveHomeWork', filePath: imgs[i], name: 'files', formData: { cname: that.data.cname }, success: function (res) { console.log(res) } }) } } }); } },// 删除图片deleteImg: function (e) {var imgs = this.data.imgs;var index = e.currentTarget.dataset.index; imgs.splice(index, 1);this.setData({ imgs: imgs }); },// 预览图片previewImg: function (e) {//获取当前图片的下标var index = e.currentTarget.dataset.index;//所有图片var imgs = this.data.imgs; wx.previewImage({//当前显示图片current: imgs[index],//所有图片urls: imgs }) },})
//存取学生作业信息 public function Wx_SaveHomeWork(){ $files=\request()->file('files'); $cname=\request()->param('cname'); $cid=Db::name('course')->where('cname',$cname)->value('id'); $max_id=Db::name('homework')->max('id'); foreach($files as $item){// 移动到框架应用根目录/public/uploads/ 目录下 $info = $files->rule('date')->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ $saveName=str_replace("\\","/",$info->getSaveName()); $img='/uploads/'.$saveName; $homework[]=['id'=>$max_id+1,'img'=>$img,'cid'=>$cid]; } } //把数据插入到作业表中 \db('homework')->insertAll($homework); }
您可能感兴趣的文章:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号