uni-app uni.uploadFile+uni.uploadFile红米k80 澎湃系统 最近文件点选图片无反应 切换相册可选择图片 但是确定后未上传

uni-app uni.uploadFile+uni.uploadFile红米k80 澎湃系统 最近文件点选图片无反应 切换相册可选择图片 但是确定后未上传

开发环境 版本号 项目创建方式
Windows win11 HBuilderX

示例代码:

const chooseFileUpload = () => {
uni.chooseFile({
count: 3, //默认100
extension: ['.pdf', '.doc', '.xlsx', '.jpg', '.jpeg', '.png'],
success: function (res) {
const tempFilePaths = res.tempFilePaths;
if(uploadFileData.length >= 3) {
uni.showToast({
title: '附件最多上传3份',
icon: 'none', // 图标,可选值:success、loading、none
duration: 3000 // 提示框显示时长,单位为毫秒
});
return false;
}
uni.uploadFile({
url: uploadUrl.value,
filePath: tempFilePaths[0],
name: 'file',
header: uploadHeader,
success: (uploadFileRes) => {
interface uploadFileDataInter {
data: {id: number, name: string}
}
let fileSuccessData: uploadFileDataInter = JSON.parse(uploadFileRes.data)
uploadFileData.push({
'id': fileSuccessData.data.id,
'name': fileSuccessData.data.name
})
},
fail: (error) => {
console.log(error);
}
});
}
}
);
}

操作步骤:

点击按钮打开了最近文件,最近文件点选图片无反应,切换相册可选择图片,但是确定后未上传

预期结果:

点选文件即刻上传

实际结果:

最近文件点选图片无反应,切换相册可选择图片,但是确定后未上传

bug描述:

【报Bug】uni.uploadFile+uni.uploadFile红米k80、 澎湃系统2.0.216.0、 微信版本8.0.53,最近文件点选图片无反应,切换相册可选择图片,但是确定后未上传


更多关于uni-app uni.uploadFile+uni.uploadFile红米k80 澎湃系统 最近文件点选图片无反应 切换相册可选择图片 但是确定后未上传的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

相同代码运行其他机器是否有这个问题?chooseImage/chooseMedia 运行到空白工程是否有问题,success/fail 会触发吗。得到 tempFile 是否能获取到?建议先使用空白工程说明问题。

更多关于uni-app uni.uploadFile+uni.uploadFile红米k80 澎湃系统 最近文件点选图片无反应 切换相册可选择图片 但是确定后未上传的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题是红米K80在澎湃OS 2.0系统下的兼容性问题,主要涉及uni.chooseFileuni.uploadFile的配合使用。从现象分析:

  1. 最近文件无反应:系统文件选择器的"最近文件"模块存在点击事件未正确触发的兼容性问题
  2. 相册选择后未上传:文件选择成功回调执行了,但uni.uploadFile未正常触发

解决方案:

  1. 添加错误处理:在uni.chooseFileuni.uploadFile中都补充完整的fail回调
uni.chooseFile({
  count: 3,
  extension: ['.pdf', '.doc', '.xlsx', '.jpg', '.jpeg', '.png'],
  success: function (res) {
    // 文件选择成功处理
    const tempFilePaths = res.tempFilePaths;
    if(uploadFileData.length >= 3) {
      uni.showToast({
        title: '附件最多上传3份',
        icon: 'none',
        duration: 3000
      });
      return false;
    }
    
    // 上传前确认文件路径有效
    if(tempFilePaths && tempFilePaths.length > 0) {
      uni.uploadFile({
        url: uploadUrl.value,
        filePath: tempFilePaths[0],
        name: 'file',
        header: uploadHeader,
        success: (uploadFileRes) => {
          // 上传成功处理
        },
        fail: (error) => {
          console.error('上传失败:', error);
          uni.showToast({
            title: '上传失败',
            icon: 'none'
          });
        }
      });
    }
  },
  fail: (err) => {
    console.error('文件选择失败:', err);
    uni.showToast({
      title: '文件选择失败',
      icon: 'none'
    });
  }
});
  1. 添加超时处理:针对上传过程可能卡住的情况
// 设置上传超时
setTimeout(() => {
  // 检查上传状态,如未完成可提示用户重试
}, 10000);
回到顶部