uni-app ios17苹果手机上传图片时获取图片大小是0KB

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

uni-app ios17苹果手机上传图片时获取图片大小是0KB

产品分类:

uniapp/App

PC开发环境

操作系统 版本号
Windows windows11

HBuilderX

类型 版本号
正式 3.8.7

手机系统

系统 版本号 厂商 机型
iOS iOS 17 苹果 苹果14 pro max

页面类型

  • vue
  • vue版本:vue2

打包方式

  • 云端

项目创建方式

  • HBuilderX

App下载地址或H5网址

示例代码:

uni.chooseImage({  
    count: 30,  
    sourceType: ['camera'],  
    success: res => {  
        if (res.errMsg == 'chooseImage:ok') {  
            // #ifdef APP-PLUS  
            res.tempFilePaths.map(item => {  
                uni.saveFile({  
                    tempFilePath: item,  
                    success: res => {  
                        var savedFilePath = res.savedFilePath;  
                        this.imgList.push(savedFilePath);  
                        if (this.imgList.length > 30) {  
                            this.imgList = this.imgList.slice(0, 30);  
                        }  
                    }  
                });  
            });  
            // #endif     
        }  
    }  
});
uploadTask.onProgressUpdate(res => {  
    //this.process = res.progress;  
    this.circular[this.tag].process = res.progress;  
    this.circular[this.tag].total = res.totalBytesExpectedToSend;  
    this.circular[this.tag].single = res.totalBytesSent;  
});

获取的图片大小是0KB 无法上传
如果是ios17以下就可以

操作步骤:

正常上传

预期结果:

能够正常上传图片

实际结果:

无法上传

bug描述:

无法上传图片

image


3 回复

有没有人知道啊,是不是要升级HBuilder?


升级到最新版本测试一下吧

在iOS 17上,uni-app 在处理图片上传时可能会遇到图片大小为0KB的问题。这通常是由于权限设置、文件路径处理或系统API兼容性问题引起的。以下是一些可能的解决方案,以及相关的代码示例,用于帮助你定位和解决这一问题。

1. 确保应用具有访问相册的权限

首先,确保你的应用已经请求并获得了访问用户相册的权限。在manifest.json中配置必要的权限:

"mp-weixin": {
  "requiredPrivateInfos": ["chooseImage"]
},
"app-plus": {
  "distribute": {
    "ios": {
      "permissions": {
        "NSPhotoLibraryUsageDescription": "需要访问您的相册"
      }
    }
  }
}

2. 检查图片选择逻辑

使用uni-app的chooseImage API来选择图片,并获取其路径和大小。下面是一个示例代码,展示如何选择和显示图片大小:

uni.chooseImage({
  count: 1,
  sourceType: ['album', 'camera'],
  success: (res) => {
    const tempFilePaths = res.tempFilePaths;
    const filePath = tempFilePaths[0];

    // 获取文件信息
    uni.getFileInfo({
      filePath: filePath,
      success: (fileInfo) => {
        console.log('文件大小:', fileInfo.size / 1024, 'KB'); // 将字节转换为KB

        // 如果文件大小为0,则进行错误处理
        if (fileInfo.size === 0) {
          uni.showToast({
            title: '图片大小为0KB,请重新选择',
            icon: 'none'
          });
        } else {
          // 进行图片上传或其他处理
          console.log('图片路径:', filePath);
        }
      },
      fail: (err) => {
        console.error('获取文件信息失败:', err);
      }
    });
  },
  fail: (err) => {
    console.error('选择图片失败:', err);
  }
});

3. 检查iOS系统更新和uni-app框架更新

iOS 17可能引入了新的系统API变更,确保你的uni-app框架是最新版本,并且已经适配iOS 17。检查uni-app的官方文档和更新日志,以获取关于iOS 17的兼容性和修复信息。

4. 调试和日志

使用Xcode调试你的应用,查看在图片选择和处理过程中是否有任何错误或警告信息。这些信息可以帮助你进一步定位问题。

通过上述步骤和代码示例,你应该能够定位并解决在iOS 17上uni-app上传图片时获取图片大小为0KB的问题。如果问题仍然存在,建议查看uni-app社区和官方支持,以获取更多帮助。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!