uni-app 3.1 ios 快照图片路径有空格 在某些地方无法使用

uni-app 3.1 ios 快照图片路径有空格 在某些地方无法使用

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 3.1.4
HBuilderX 正式版
HBuilderX版本号 3.1.4
手机系统 iOS
手机版本号 iOS 13.0
手机厂商 苹果
手机机型 iPhone6 / iPhone8
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uni.compressImage({
src:'file://' + success.tempImagePath,
success:compressImage=> {
// 路径中带有空格    
},  
fail: (err) => {  
    this.silentPhotoTaking(num)  
}  
})

操作步骤:

使用h5+,在页面中创建推流窗口,然后调用快照,压缩图片,进行上传

预期结果:

图片路径没有空格,可以正常使用

实际结果:

图片路径有空格,调用阿里云接口报错

bug描述:

使用LivePusher快照之后压缩图片


更多关于uni-app 3.1 ios 快照图片路径有空格 在某些地方无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 3.1 ios 快照图片路径有空格 在某些地方无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在iOS系统中,文件路径包含空格确实可能导致某些接口(如阿里云OSS上传)无法正确解析路径,引发操作失败。这是iOS文件系统的特性,路径中的空格需要被编码或处理才能被正确识别。

解决方案:

  1. 路径编码处理
    使用encodeURI()encodeURIComponent()对包含空格的路径进行编码:

    uni.compressImage({
      src: 'file://' + encodeURI(success.tempImagePath),
      success: compressImage => {
        // 处理压缩后的图片
      },
      fail: err => {
        console.error('压缩失败:', err);
      }
    });
    

    编码后的空格会被转换为%20,符合URL规范,避免路径解析错误。

  2. 替换空格(备选方案)
    如果编码无效,可尝试直接替换空格:

    const safePath = success.tempImagePath.replace(/ /g, '%20');
    uni.compressImage({
      src: 'file://' + safePath,
      // ...
    });
回到顶部