微信小程序封装多张图片上传api代码实例
作者:剑圣_LLX 发布时间:2024-04-25 13:13:31
标签:小程序,封装,图片,上传,api
这篇文章主要介绍了微信小程序封装多张图片上传api代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码如下
export default class Upload{
constructor(object) {
this.obj = {
count:1,
sizeType:['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType:['album','camera'], // 可以指定来源是相册还是相机,默认二者都有
}
if(Object.prototype.toString.call(object) === "[object Object]"){
Object.assign(this.obj, object);
}else{
uni.showToast({
title: '参数必须为对象',
icon:"icon",
duration: 2000
});
}
return this;
}
// 上传图片 返回一个图片的数组集合
async uploadPic(){
let chooseImageResult = await this.chooseImage()
console.log("选择图片",chooseImageResult)
let imgArr = await chooseImageResult.tempFilePaths.map(async (item,index) => {
uni.showLoading({
title: `正在上传第${index+1}张`
});
let uploadFileResult = await this.uploadFile(item)
console.log("上传图片过程",uploadFileResult)
return getApp().globalData.img_prefix + uploadFileResult.data.file.url;
})
return new Promise((resolve,reject) => {
Promise.all(imgArr).then((result)=>{
uni.hideLoading();
uni.showToast({
title: '上传成功',
icon:"none",
duration: 2000
});
console.log("上传图片结果",result)
resolve(result)
})
})
}
uploadFile(file){
return new Promise((resolve, reject) => {
uni.uploadFile({
url: 'https://baidu.com/upload/', //此处是你自己上传接口
filePath: file,
name: 'file',
success: function (res) {
var data = res.data;
resolve(JSON.parse(data))
},
fail: function (res) {
reject("上传失败")
},
complete: function (res) {
uni.hideToast();
}
})
})
}
chooseImage(){
return new Promise((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("选择文件失败")
}
})
})
}
}
使用实例
let object = {
count:1,
sizeType:['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType:['album','camera'], // 可以指定来源是相册还是相机,默认二者都有
}
let result = await new Upload(object).uploadPic();
来源:https://www.cnblogs.com/LLX8/p/12106106.html
0
投稿
猜你喜欢
- 在找寻材料的时候,会看到一些暂时用不到但是内容不错的网页,就这样关闭未免浪费掉了,下次也不一定能再次搜索到。有些小伙伴会提出可以保存网页链接
- 写 python 文件时,每个文件开头都必须注明版本和编码。每次我 touch 文件之后粘贴这两句话让我不胜其烦。由于我没有安装 pytho
- 概述 一、 初识setup函数 组件中所用到的:数据、方法等等均要配置在setup中,这也就意味着在Vue2中写的dat
- 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也
- Rex 是 Perl 编写的基于 SSH 链接的集群配置管理系统,语法上类似 Puppet DSL。官网中文版见 http://rex.pe
- 一、前言本次安装tensorflow是基于Python的,安装Python的过程不做说明(既然决定按,Python肯定要先了解啊):本次教程
- Vue给数组第一位添加对象数据核心代码如下: this.menuBar.unshift({
- 背景是:在实际开发中,可能会遇到网络问题或者查询量比较大的情况,上一个请求还没有完成,用户就发起了下一个请求。会造成什么情况呢?但是同一个请
- 前言numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。本文讲给大家介绍关
- 在pandas中怎么样实现类似mysql查找语句的功能:select * from table where column_name = so
- 在python列表中,如果我们想要删除一个或者连续几个元素,可以使用del()方法,在numpy数组,如果想要删除元素,可以使用numpy.
- 这句话后面的1200是什么单位来的啊?delete from online where datediff(""s&quo
- 操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和binlog差来恢复,等不了,很费时。这
- git fetch和git pull都可以将远端仓库更新至本地那么他们之间有何区别?想要弄清楚这个问题有有几个概念不得不提。FETCH_HE
- __str__函数如果定义了该函数,当print当前实例化对象的时候,会返回该函数的return信息可用于定义当前类的描述信息用法:def
- key_buffer_size - 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理
- django外键使用 一对一因为django中处于安全和方便将数据库中的表封装成模型,所以很多sql原生的功能无法使用, 比如 left j
- 在许多用SQL Server实现的新的企业系统设计中,系统设计师需要在给数据结构和管理应用程序逻辑的定位上做出具有关键性意义的决定。SQL
- 说到这个话题,我们有个产品叫群组,为什么人们需要群组?简单说,群组就是个圈子,是有共同爱好和话题的人群聚在一起讨论、分享的地方。这个产品的诞
- 在asp中调用sql server的存储过程可以加快程序运行速度,本文介绍了asp使用存储过程的方法。1.调用存储过程的一般方法 先假设在s