如你所了解到的,微信小程序的wx.uploadFile每次仅支持单文件上传。但在实际的应用场景中往往有多文件上传的需求。因此我打算用Promise.all对wx.uploadFile进行一层封装,让其能够实现多文件上传。
说在前面:若你了解Promise.all的用法.那么你一定知道这样封装的结果:同时上传多张图片,假如其中某一张上传失败,那么Promise.all将判定这次多图上传失败【上传失败的图片之前的图片实际上传了,上传失败的图片之后的图片不再上传】。
因此,若你的需求是在一次多图任务上传过程,必须每张图片上传成功才算本次多图上传任务成功,那么Promise.all封装很适合你,如果你只想多次执行wx.uploadFile且多次上传之间没有依赖关系,那么可以参考使用网上其他递归或for循环封装的方法,不建议采用promise.all。
一.封装wx.uploadFile
新建一个uploadFile.js文件
module.exports=function(filePath){
return new Promise((resolve,reject)=>{
wx.uploadFile({
filePath:filePath //上传文件的文件路径
name: 'pic', //上传的文件名,主要用于后端定位该文件
url: '后端的url',
formData:{
//本次请求中若需要其他参数,可在该部分写
//例如 :
//'

本文介绍如何使用Promise.all封装微信小程序的wx.uploadFile方法以实现多文件并发上传。通过示例代码展示如何在页面中调用封装后的上传函数,并讨论了在上传失败时的处理策略。此外,还提供了wx.chooseImage的选择图片示例,以及后端接收到图片并保存的简单说明。请注意在实际使用中添加异常处理。
最低0.47元/天 解锁文章
1972

被折叠的 条评论
为什么被折叠?



