微信小程序封装多张图片上传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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。