uni-app uni.chooseFile设置extension后选择文件异常

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app uni.chooseFile设置extension后选择文件异常

操作步骤:

```bash
调用 uni.chooseFile,设置extension

uni.chooseFile({  
    count: 9, //默认100  
    type: 'all',  
    extension: ['.mp3', '.wav'],  
    success: (res) => {  
    }  
})
```

### 预期结果:
可以正常选择可以选择歌曲的app或文件管理器, 且筛选歌曲文件,其他文件不显示

实际结果:

```text
选择操作里只剩了相机
```

### bug描述:
APP里用webview内嵌uniapp生成的h5页面,在h5页面调用uni.chooseFile设置extension:['.mp3','.wav']后,调用uni.chooseFile显示异常,弹窗只有相机可以选,设置其他后缀名也一样只剩一个相机可以选,求助是什么问题?

图片

image


1 回复

针对您提到的 uni-app 中使用 uni.chooseFile 设置 extension 后选择文件出现异常的问题,通常这可能与您设置的文件扩展名不匹配或者代码实现上有误有关。以下是一个正确的代码示例,展示了如何在 uni-app 中使用 uni.chooseFile 并设置 extension 来选择特定类型的文件。同时,我也将展示一些常见的调试方法和异常处理技巧。

代码示例

// 假设您希望用户只能选择图片文件(如.jpg, .png)
uni.chooseFile({
    count: 1, // 选择文件的数量
    extension: ['jpg', 'png'], // 设置允许选择的文件类型
    success: (res) => {
        console.log('选择文件成功:', res);
        // 您可以在这里处理选择的文件,例如获取文件的临时路径
        const tempFilePath = res.tempFiles[0].path;
        // 后续操作,如上传等
    },
    fail: (err) => {
        console.error('选择文件失败:', err);
        // 处理失败情况,比如提示用户检查文件类型是否正确
        uni.showToast({
            title: '只能选择jpg或png文件',
            icon: 'none'
        });
    }
});

调试与异常处理

  1. 检查 extension 数组: 确保 extension 数组中列出的文件类型是您期望用户选择的类型,并且这些类型是正确的(无错别字,区分大小写)。

  2. 检查文件选择器UI: 在某些平台上(如微信小程序),文件选择器的UI可能不会直接显示可选择的文件类型,但后台会进行类型校验。确保用户选择的文件确实符合 extension 中的类型要求。

  3. 错误处理: 在 fail 回调中,您可以添加更详细的错误处理逻辑,比如根据错误码或错误信息进行不同的提示。

  4. 日志记录: 使用 console.log 或其他日志记录方法记录用户的操作和选择的文件信息,这有助于定位问题。

  5. 跨平台测试: 由于 uni-app 支持多平台,建议在不同平台上测试文件选择功能,以确保在不同环境下都能正常工作。

通过上述代码示例和调试建议,您应该能够解决在使用 uni.chooseFile 设置 extension 后选择文件出现的异常问题。如果问题仍然存在,可能需要检查 uni-app 的版本更新日志或向官方社区寻求帮助。

回到顶部