程序员周瑜
程序员周瑜
  • 发布:2021-01-10 19:12
  • 更新:2021-09-29 15:09
  • 阅读:1083

【报Bug】使用Promise封装UploadFile,如果有多张图片,手机端只能上传一张,H5端无问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.0.7

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 小米8

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

http代码封装:

function upload(url = baseUrl,filePath,formData){  
    let ts = util.gettimestamp();  
    let transid = util.gettransid(ts);  
    let sign = util.getsign(transid);  
    const baseUrl = getApp().globalData.serverInterfaceUrl  
    formData.ts = ts  
    formData.transid = transid  
    formData.sign = sign  
    for(let i=0;i<filePath.length;i++){  
        console.log("第"+i+"张图片:",filePath[i].uri)  
    }  
    return new Promise((resolve,reject)=>{  
        uni.uploadFile({  
            url: baseUrl + url,  
            files:filePath,  
            formData:formData,  
        }).then((response)=>{  
            setTimeout(function(){  
                let [error,res] = response  
                resolve(JSON.parse(res.data))  
            })  
        }).catch(error=>{  
            let [err,res] = error  
            reject(err)  
        })  
    })  
}

然后页面中调用
imgList是调用手机拍照的结果集。

let imgs = that.imgList.map((value,index)=>{  
                        return {  
                            name: 'img'+index,  
                            uri: value.uri  
                        }  
                    })  
                    httpclient.upload('',imgs,data).then(res=>{  
                        uni.hideLoading()  
                        if(res.code == 100){  
                            uni.showToast({  
                                title:"上传成功"  
                            })  
                        }else{  
                            uni.showToast({  
                                title: '上传失败,'+res.msg,  
                                icon: 'none'  
                            });  
                        }  
                    })

单张图片无问题,多张图片h5端也可以正常上传。但运行到 android手机,每次只能上传最后一张。
客户端日志显示有多张上传,但服务端每次只能接收到一张。

操作步骤:

预期结果:

实际结果:

bug描述:

使用Promise封装文件上传。单文件上传无问题。如果有多个文件,手机APP只能上传第后一张。

2021-01-10 19:12 负责人:无 分享
已邀请:
5***@qq.com

5***@qq.com

我也遇到同样的问题 app还是框架本身拦截了只能上传最后一张图片, 最后你是怎么实现的呢?

该问题目前已经被锁定, 无法添加新回复