8***@qq.com
8***@qq.com
  • 发布:2021-11-03 20:02
  • 更新:2021-11-04 14:47
  • 阅读:821

uni-file-picker手机上可以连续选择图片吗?

分类:uni-app

在手机上每选择一个图片就会给我弹出来,可以先选够图片之后再确认吗?不然一张一张的选太麻烦了

2021-11-03 20:02 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

我看基本都是自己写的,貌似不是很麻烦

// 多图上传  
// type: 1图片和视频,2图片  
// count:最大数量  
export function headerUploads(type = 1, count = 1) {  
    let mediaType = ['image', 'video']  
    if (type == 2) {  
        mediaType = ['image']  
    }  
    return new Promise((resolve, reject) => {  
        let UploadList = []  
        uni.chooseMedia({  
            // 最多可以选择的图片总数  
            count,  
            // 最长视频时间  
            maxDuration: 30,  
            mediaType,  
            success: res => {  
                //启动上传等待中...    
                uni.showLoading({  
                    title: '上传中',  
                });  
                console.log('上传的是:', res);  
                let upRes = res  
                var srcObj = {  
                    type: res.type  
                }  
                Promise.all(  
                        upRes.tempFiles.map((item, index) => {  
                            return new Promise((resolve1, reject1) => {  
                                if (upRes.tempFiles[index].duration > 31) {  
                                    uni.showToast({  
                                        title: "上传视频不能超过30秒!",  
                                        icon: 'none',  
                                    })  
                                    return  
                                }  
                                uni.uploadFile({  
                                    // 上传地址  
                                    url: BASE_URL + '/api/common/upload',  
                                    name: 'file',  
                                    filePath: upRes.tempFiles[index]  
                                        .tempFilePath,  
                                    formData: {  
                                        // 'file': res.tempFilePaths[0]  
                                    },  
                                    header: {  
                                        'content-type': 'application/x-www-form-urlencoded',  
                                        // "token": uni.getStorageSync('token') || ''  
                                    },  
                                    success: (resz) => {  
                                        console.log('后端返回', (JSON.parse(resz  
                                                .data)  
                                            .data));  
                                        uni.hideLoading()  
                                        // 单图  
                                        if (type == 2) {  
                                            resolve(JSON.parse(resz.data)  
                                                .data)  
                                        } else {  
                                            srcObj.src = JSON.parse(resz  
                                                    .data)  
                                                .data  
                                            // resolve(srcObj)  
                                            // setTimeout(() => {  
                                            UploadList.push(srcObj)  
                                            srcObj = {  
                                                type: res.type  
                                            }  
                                            // }, 200)  
                                            console.log('循环中', index, upRes  
                                                .tempFiles  
                                                .length);  
                                            resolve1()  
                                        }  
                                    },  
                                    fail: (resz) => {  
                                        console.log('失败返回', resz);  
                                        uni.hideLoading()  
                                        reject()  
                                    }  
                                })  
                            });  
                        }))  
                    .then(() => {  
                        console.log('循环后', UploadList);  
                        resolve(UploadList)  
                    })  
                    .catch((error) => {  
                        console.log('循环后', UploadList);  
                        resolve(UploadList)  
                    })  
            },  
            complete: compRes => {}  
        });  
    })  
}

原帖uniapp选中多张图片或者视频(多图上传)

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