uni-app uni.chooseFile选择文件上传没反应

uni-app uni.chooseFile选择文件上传没反应

问题描述

android11版本的手机,如果设置了extension点击上传文件没反应,android15版本的手机能正常选择上传

uni.chooseFile({
    count: 10 - this.fileList.length,
    extension: ['.pdf'],
    success: (res) => {
        this.fileList = [...this.fileList, ...res.tempFiles]
    }
})
3 回复

看下 fail 失败回调中有没有错误信息

更多关于uni-app uni.chooseFile选择文件上传没反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在Android 11设备上使用uni.chooseFile时,如果设置了extension参数导致文件选择器无响应,这通常是由于系统文件选择器的兼容性问题。Android 11引入了更严格的存储权限机制(Scoped Storage),可能限制了应用对特定文件类型的访问。

解决方案:

  1. 检查权限配置:确保在manifest.json中声明了适当的存储权限(例如android.permission.READ_EXTERNAL_STORAGE),并动态请求用户授权。
  2. 扩展类型兼容性:尝试将extension参数改为MIME类型,例如['application/pdf'],因为某些系统文件选择器对MIME类型的支持更好。
  3. 降级处理:如果问题持续,可考虑在Android 11及以上版本中移除extension限制,改为在success回调中手动过滤文件类型。例如:
    uni.chooseFile({
      count: 10 - this.fileList.length,
      success: (res) => {
        const filteredFiles = res.tempFiles.filter(file => file.name.endsWith('.pdf'));
        this.fileList = [...this.fileList, ...filteredFiles];
      }
    });
回到顶部