tp5实现微信小程序多图片上传到服务器功能
最近在做一个教育类的小商城的微信小程序,用到了上传多个图片文件到服务器端,这里做一个讲解,希望对大家有所帮助。
1,小程序端:
在wxml文件中:
删除 点击上传作业
在js文件中:
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){ varthat=this; if(that.data.cname==''){ }else{ varimgs=this.data.imgs; if(imgs.length>=9){ this.setData({ lenMore:1 }); setTimeout(function(){ that.setData({ lenMore:0 }); },2500); returnfalse; } wx.chooseImage({ //count:1,//默认9 sizeType:['original','compressed'],//可以指定是原图还是压缩图,默认二者都有 sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有 success:function(res){ //返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 vartempFilePaths=res.tempFilePaths; varimgs=that.data.imgs; //console.log(tempFilePaths+'----'); for(vari=0;i=9){ that.setData({ imgs:imgs }); returnfalse; }else{ imgs.push(tempFilePaths[i]); } } //console.log(imgs); that.setData({ imgs:imgs, }); //循环把图片上传到服务器 for(vari=0;i 2,我们注意到我的wx.request请求中Wx_SaveHomeWork方法是后台服务器的接收图片方法,
后边我会把这个方法展示出来,
3.tp5后台controller中:
//存取学生作业信息 publicfunctionWx_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($filesas$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); }这里说一下,max_id的作用,因为接受的是多张图片,相当于一次性要存储多条数据,所以用max_id对id进行自增,存储到数据库表,cid是我自己数据库逻辑需要用到的变量,可以不用考虑,
4.讲解的不够清楚,因为是自己写的,感受不到难点在哪里,我自己的难点是在小程序端的图片上传,用了for循环,循环上传的方法,其他的相对来说,逻辑比较简单。
总结
以上所述是小编给大家介绍的tp5实现微信小程序多图片上传到服务器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!