^草莓牛乳茶^ 2023-04-28 09:56 采纳率: 16.7%
浏览 19

关于#uniapp#的问题,如何解决?

上传多张图片使用uni.chooseImage
但是它默认一次性最多选择9张,切不可更改源码
需求是一次性可选择50张图片,有什么好的方法解决吗

  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2023-04-28 10:53
    关注

    引用自 chatGPT:
    由于 uni.chooseImage 接口的限制,无法更改一次性最多选择9张图片的限制。但是可以通过以下方式实现一次性选择50张图片的需求:

    1.分批选择:可以将50张图片分成5批,每批选择9张图片,最后将选择的所有图片合并起来。

    2.自定义上传接口:可以自己编写上传图片的接口,通过 uni.chooseImage 接口选择多张图片后,将图片转成 base64 编码,然后通过网络请求将 base64 编码的图片上传到服务器。这种方式需要注意上传图片的大小,如果图片过大可能会导致网络请求失败。

    3.使用第三方图片上传组件:可以使用第三方图片上传组件,例如 uni-uploader,该组件支持批量上传图片,并且可以设置上传图片的数量限制。使用该组件可以方便地实现一次性选择50张图片的需求。

    您可以考虑使用uni-app官方提供的uni.uploadFile API,该API支持上传多张文件。您可以编写一个循环来选择并上传50张图片,例如:

    for (let i = 0; i < 50; i++) {
      uni.chooseImage({
        count: 1,
        success: function(res) {
          uni.uploadFile({
            url: 'your upload url',
            filePath: res.tempFilePaths[0],
            name: 'file',
            success: function(uploadRes) {
              console.log('Upload success');
            }
          });
        }
      });
    }
    
    

    在这个例子中,我们循环50次通过 uni.chooseImage 来选择一张图片,然后使用 uni.uploadFile 上传所选图片。需要注意的是,上传过程可能需要一些时间,因此建议您适当处理上传的顺序和并发数,以避免系统资源耗尽的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月28日