微信小程序封装多张图片上传api代码实例
这篇文章主要介绍了微信小程序封装多张图片上传api代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码如下
exportdefaultclassUpload{ constructor(object){ this.obj={ count:1, sizeType:['original','compressed'],//可以指定是原图还是压缩图,默认二者都有 sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有 } if(Object.prototype.toString.call(object)==="[objectObject]"){ Object.assign(this.obj,object); }else{ uni.showToast({ title:'参数必须为对象', icon:"icon", duration:2000 }); } returnthis; } //上传图片返回一个图片的数组集合 asyncuploadPic(){ letchooseImageResult=awaitthis.chooseImage() console.log("选择图片",chooseImageResult) letimgArr=awaitchooseImageResult.tempFilePaths.map(async(item,index)=>{ uni.showLoading({ title:`正在上传第${index+1}张` }); letuploadFileResult=awaitthis.uploadFile(item) console.log("上传图片过程",uploadFileResult) returngetApp().globalData.img_prefix+uploadFileResult.data.file.url; }) returnnewPromise((resolve,reject)=>{ Promise.all(imgArr).then((result)=>{ uni.hideLoading(); uni.showToast({ title:'上传成功', icon:"none", duration:2000 }); console.log("上传图片结果",result) resolve(result) }) }) } uploadFile(file){ returnnewPromise((resolve,reject)=>{ uni.uploadFile({ url:'https://baidu.com/upload/',//此处是你自己上传接口 filePath:file, name:'file', success:function(res){ vardata=res.data; resolve(JSON.parse(data)) }, fail:function(res){ reject("上传失败") }, complete:function(res){ uni.hideToast(); } }) }) } chooseImage(){ returnnewPromise((resolve,reject)=>{ uni.chooseImage({ count:this.obj.count,//1,//默认9 sizeType:this.obj.sizeType,//['original','compressed'],//可以指定是原图还是压缩图,默认二者都有 sourceType:this.obj.sourceType,//['album','camera'],//可以指定来源是相册还是相机,默认二者都有 success:function(res){ //console.log(res) resolve(res) }, fail:function(){ reject("选择文件失败") } }) }) } }
使用实例
letobject={ count:1, sizeType:['original','compressed'],//可以指定是原图还是压缩图,默认二者都有 sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有 } letresult=awaitnewUpload(object).uploadPic();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。