uni-app uni.chooseImage 在支付宝小程序未返回字段 tempFiles

uni-app uni.chooseImage 在支付宝小程序未返回字段 tempFiles

开发环境 版本号 项目创建方式
Mac macOS 11.5 CLI
产品分类:uniapp/小程序/阿里

## 示例代码:

直接使用 uni-file-picker  

```vue
<uni-file-picker    
      limit="9"    
      title="最多选择9张图片"    
/>

操作步骤:

选择图片提交,必现bug
支付宝选择图片后返回字段

res: {    
  apFilePathsV2: [],    
  errMsg: "chooseImage:ok",    
  tempFilePaths: [],    
},

缺失 tempFiles

预期结果:

返回 tempFiles 字段
具体返回字段,api 文档参看 https://uniapp.dcloud.io/api/media/image?id=chooseimage

实际结果:

未返回 tempFiles 字段

bug描述:

bug链接
你好,这里发现个 bug,
支付宝小程序选择图片有个字段未兼容的问题,这个问题是 uni-app 内兼容,还是 uni-ui 里 uni-file-picker 兼容


更多关于uni-app uni.chooseImage 在支付宝小程序未返回字段 tempFiles的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

支付宝小程序真机测试正常,是支付宝模拟器的问题,详见帖子:https://forum.alipay.com/mini-app/post/49301029
我们后续会在框架内判断和兼容。 已加分,感谢您的反馈!

更多关于uni-app uni.chooseImage 在支付宝小程序未返回字段 tempFiles的实战教程也可以访问 https://www.itying.com/category-93-b0.html


多谢

在支付宝小程序中,uni.chooseImage 确实未返回 tempFiles 字段,这是支付宝小程序平台自身的限制。支付宝小程序的 chooseImage API 只返回 tempFilePaths(图片本地路径数组),不提供 tempFiles(包含文件大小、类型等详细信息的对象数组)。

解决方案:

  1. 直接使用 uni.chooseImage
    如果需要 tempFiles 中的详细信息(如文件大小),可以通过 tempFilePaths 路径数组,调用 uni.getFileInfo()uni.getImageInfo() 手动获取文件信息,例如:
    uni.chooseImage({
      success: async (res) => {
        const tempFilePaths = res.tempFilePaths; // 支付宝小程序仅返回路径
        const tempFiles = [];
        for (let path of tempFilePaths) {
          const fileInfo = await uni.getFileInfo({ filePath: path });
          tempFiles.push({
            path: path,
            size: fileInfo.size,
            // 其他字段需自行补充
          });
        }
        console.log(tempFiles); // 得到完整文件信息
      }
    });
回到顶部