微信小程序技巧之show内容展示,上传文件编码问题
show内容展示
尝试用微信小程序的template组件实现。同时,尝试页面间转跳时传参,在目标页面引入模板文件实现写的更少,做的更多篇幅有限详细代码此处省略
<viewclass="show-warp"> <blockwx:for="{{discuss}}"wx:key="index"> <templateis="discuss"data="{{item}}"></template> <templateis="discuss-reply"data="{{item}}"></template> <templateis="discuss-more"data="{{item}}"></template> </block> </view>
Page({ data:{ discuss:[], petAge:0, reply:false, height:20 }, onLoad:function(){ util.dataList.call(this,{ cb:util.petAge }); } }); /* *部分公共逻辑页代码 */ functionlist(option){ varopt={ url:option.url||'https://api.zg5v.com/index.php/index/show/showindex', data:option.data||{ uid:148, num:option.pageNum||0 }, update:option.update||false, cb:option.cb||false, func:option.func||false }; //数据列表 varshowList=[]; varobjDa=[]; this.data.replyListArr=[]; //保存/修改this指向 varself=this; ajax({ url:opt.url, data:opt.data, cb:function(res){ showList=res.data.data; //统一格式 if(!Array.isArray(showList)&& typeofshowList==='object'){ //计算评论发布时间 showList.pl.forEach(function(e,i){ e.cp_chongbirth=e.cp_addtime*1000; e.replyTime=opt.cb(e.cp_chongbirth,true); },showList.pl); objDa.push(showList); }else{ objDa=showList; } //更新评论列表 if(opt.update){ letda=res.data.data.pl, plDa=self.data.discuss, i=0, j=0, len=da.length, jLen=plDa.length; for(;j<jLen;j++){ for(;i<len;i++){ if(plDa[j].pl.length>0){ plDa[j].pl.push(da[i]); } } } objDa=plDa; opt.update=!opt.update; } if(res.data.status===1){ for(vari=0,len=objDa.length;i<len;i++){ if(opt.cb&&typeofopt.cb==='function'){ //计算宠物年龄 objDa[i].petAge=opt.cb(objDa[i].cp_chongbir|| objDa[i].cp_chongbirth); } } self.setData({ discuss:objDa }); }elseif(res.data.status===2||res.data.status===0){ self.onLoad(); } objDa=[]; } }); }
上传文件编码问题(*)
header里的数据在真机预览的时候是无效的。那就尝试改变编码进行传输,在uploadFile的参数中加入
header:{“chartset”:”utf-8”}
或是
header:{"content-type":'application/x-www-form-urlencoded'}
需要改到formData中,尝试将编码数据加入formData,但仅仅传输了数据,并没有改变编码.header有问题暂时找不到解决方案,所以编码操作暂时只能手动进行.在javascript中,字符串编码函数是encodeURI,在小程序中尝试可以使用。所以,将代码改为如下:
wx.uploadFile({ url:'Uploadimageserverpath(Mustbesecurehttps)', //待上传的图片,由chooseImage获得 filePath:tempFilePaths[0], name:'file', //HTTP请求中其他额外的formdata formData:{ //city:'太原', city:encodeURI('太原'), //name:'taiyan', name:encodeURI('taiyan')//名称 }, success:function(res){ console.log("success",res); }, fail:function(res){ console.log("fail",res); } });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。