uni-app uni.chooseFile当选中两个及以上文件时 在微信内置浏览器中无效
uni-app uni.chooseFile当选中两个及以上文件时 在微信内置浏览器中无效
示例代码:
uni.chooseFile({
count: 9,
type:'all',
success: (res) =>{
console.log(res);
},
fail: (err) => {
console.log(err);
},
complete: (res) => {
console.log(res);
}
});
操作步骤:
微信内置浏览器访问地址,点击“添加文件”,弹出文件管理器,选中两个及以上文件,点击“选择”
预期结果:
回调函数能正确返回文件信息
实际结果:
success、fail、complete均未调用
bug描述:
uni.chooseFile 当选中两个及以上文件时,success、fail、complete均未调用。选择一个文件是正常的。
同问
同问
在 uni-app
中使用 uni.chooseFile
方法时,如果在微信内置浏览器中选中两个及以上文件时无效,可能是由于微信内置浏览器的限制或 uni-app
的兼容性问题。以下是一些可能的解决方案和排查步骤:
1. 检查微信版本
确保微信版本是最新的,旧版本的微信内置浏览器可能存在一些兼容性问题。
2. 检查 uni.chooseFile
的参数
确保你正确使用了 uni.chooseFile
方法,并且参数设置正确。例如:
uni.chooseFile({
count: 2, // 允许选择的最大文件数量
success(res) {
console.log(res.tempFiles); // 选中的文件列表
},
fail(err) {
console.error(err);
}
});
3. 检查微信内置浏览器的限制
微信内置浏览器可能对文件选择有一些限制,例如文件数量、文件大小等。你可以尝试减少文件数量或文件大小,看看问题是否依然存在。
4. 使用 wx.chooseMessageFile
(仅限微信小程序)
如果你在微信小程序环境中,可以尝试使用 wx.chooseMessageFile
方法,它可能对文件选择有更好的支持。
wx.chooseMessageFile({
count: 2, // 允许选择的最大文件数量
success(res) {
console.log(res.tempFiles); // 选中的文件列表
},
fail(err) {
console.error(err);
}
});
5. 使用 input
标签
如果 uni.chooseFile
在微信内置浏览器中无法正常工作,你可以尝试使用原生的 <input type="file">
标签来实现文件选择功能。
<input type="file" multiple @change="handleFileChange" />
methods: {
handleFileChange(event) {
const files = event.target.files;
console.log(files); // 选中的文件列表
}
}
6. 反馈给 uni-app
官方
如果以上方法都无法解决问题,建议将问题反馈给 uni-app
官方,可能是 uni-app
的 bug 或兼容性问题。
7. 使用其他文件选择库
如果 uni.chooseFile
在微信内置浏览器中无法满足需求,可以考虑使用其他第三方文件选择库,例如 FilePond
或 Uppy
。
8. 检查网络环境
有时网络环境也可能影响文件选择功能,确保在良好的网络环境下进行测试。
9. 检查微信开发者工具
如果你在微信开发者工具中测试,确保开发者工具是最新版本,并且模拟器设置正确。
10. 使用 uni.chooseImage
替代
如果文件选择功能仅用于图片,可以尝试使用 uni.chooseImage
方法,它可能对图片选择有更好的支持。
uni.chooseImage({
count: 2, // 允许选择的最大图片数量
success(res) {
console.log(res.tempFilePaths); // 选中的图片路径列表
},
fail(err) {
console.error(err);
}
});