微信小程序之----上传图片

本文主要介绍了微信小程序中用于图片上传的API,包括wx.chooseImage、wx.previewImage和wx.uploadFile。在使用过程中,可能会遇到图片选择数量限制、图片预览、文件临时路径保存以及并发上传限制等问题。开发者需要注意每轮请求只能上传一张图片,最大并发限制为10个,并且可以通过onProgressUpdate监听上传进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  微信小程序上传图片用到的api

wx.chooseImage(OBJECT)wx.previewImage(OBJECT)wx.uploadFile(OBJECT)

这几个基本的api的使用方法可以去看微信小程序的官方文档------------官方文档-------这里就不重复赘述了

在此谈几点开发中会遇到的问题:

1.wx.chooseImage(OBJECT)

count: 一次最多选择的图片张数,默认是9(并且该值最大是9)

success会返回文件的临时路径-----

文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。

2.wx.previewImage(OBJECT)

urls:图片的链接地址数组(必须是链接的数组)

3.wx.uploadFile(OBJECT)

上传照片有两点限制: 1)每发起一次请求只能上传一张图片

2)最大并发限制是 10 个(图片及网络原因,使用并发上传时,每张图片上传成功的顺序不一定)

返回一个 uploadTask 对象,通过 uploadTask,可监听上传进度变化事件,以及取消上传任务

uploadTask.onProgressUpdate((res) => {
if (res.progress == 100) {
//上传成功
}})

当你想上传多张图片时,就需要多次发送请求;两种方式
一:采取并发上传的方式,但是并发最多是10个且上传成功存在不可控;因此一次图片不多于10张时可以采用
方法:用for循环每次更新上传的图片,并行发起10次请求
二:采取串行的方式,每次上传成功后再上传下一张 缺点是----上传多张时间将明显增加
wx.uploadFile({
url: url,
header: { 'content-type': 'multipart/form-data'},
filePath: picList[ 0],
name: 'file',
formData: {},
success: function (res) {
picList.splice( 0, 1);
//一次上传完成再次上传
wx.uploadFile({
...
})},
fail: function () {
}})

当上传图片大于10张时;为了避开小程序的并发限制,同时尽可能多的缩短上传时间---最优的方案是采取串并行结合的方式
------10张以内采用并行,超过10张后切换到串行
这里就不上代码了,思路有了,大家可以自行去实现

--------今天就写到这了,有想到的再来补充-----

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值