需求:上传多个文件,每上传一个文件异步请求一下后台接口,并返回一个新文件名,等把所有的异步接口执行成功后,将上传已成功后新文件名数组得到再去更新业务数据

uni-file-picker 文件上传组件的配置

选择文件后,上传到服务器后端,一个一个的传,等异步执行完一下再执行下一个

上传到后端的方法

执行效果

代码:

        async selectFile(e) {
            let files = [];
            for (let i = 0; i < e.tempFilePaths.length; i++) {
                let resultstr = await this.uploadFiles(e.tempFilePaths,i);
                let result = JSON.parse(resultstr);
                files.push(result.result.files);
            }
            console.log("finish>>>>>",files);
        },

        async uploadFiles(tempFilePaths,i){
            return new Promise((resolve, reject) => {
                uni.uploadFile({
                     url: "http://localhost:8180/api/business/inStoreApproval/uploadPlus", //后端用于处理图片并返回图片地址的接口    
                     filePath: tempFilePaths[i],    
                     name: 'file',
                     header: {
                        "X-Access-Token": Vue.prototype.$token,
                        "X-Requested-With":"XMLHttpRequest",
                        "tenant_id":0
                     },
                     success: res => {  
                         console.log(res.data);
                         resolve(res.data)
                     },   
                     fail: () => {
                        reject(err)
                        console.log("err");
                     }   
                })
            })
        },

如果觉得文章对您有用,可以收藏本文和关注本人,后续会将工作中遇到的一些技术问题写成文档,一起共同讨论学习!

Logo

前往低代码交流专区

更多推荐