uni-app getImageInfo获取网络图片异常,saveImageToPhotosAlbum保存网络图片的临时路径异常

uni-app getImageInfo获取网络图片异常,saveImageToPhotosAlbum保存网络图片的临时路径异常

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

测试过的手机:

  • android:小米mix3
  • ios:ipod

示例代码:

toNewDynamic(){
uni.getImageInfo({
src: 'https://www.ahuoban.com/data/attachment/forum/202103/01/173007qrcksk85ckkce9c0.jpg',
success: function (image) {
console.log(image);
uni.saveImageToPhotosAlbum({
filePath:image.path,
success: function (res) {
console.log(res);
},
fail(error) {
console.log(error)
}
});
},
fail(error) {
console.log(error)
}
});
}

操作步骤:

  1. 调用函数,使用uni.getImageInfo获取网络图片信息,得到本地图片临时路径,返回结果(临时路径中无后缀名):

    {
    "path": "file:///storage/emulated/0/Android/data/com.ahuoban.app/apps/UNI57D77B0/doc/uniapp_temp_1615252121182/download/1615252144446_74495492",
    "width": 759,
    "height": 441,
    "orientation": "up",
    "type": "jpeg",
    "errMsg": "getImageInfo:ok"
    }
    
  2. 使用uni.saveImageToPhotosAlbum将图片保存到本地相册,返回结果:

    {
    "file": "file:///storage/emulated/0/DCIM/Camera/1615252144446_74495492",
    "errMsg": "saveImageToPhotosAlbum:ok"
    }
    
  3. uni.saveImageToPhotosAlbum返回saveImageToPhotosAlbum:ok(即保存成功)

  4. uni.getImageInfo获取网络图片得到的临时路径无后缀名,手动添加后缀名然后使用uni.saveImageToPhotosAlbum将图片保存到本地相册失败,返回结果:

    {
    "errMsg": "saveImageToPhotosAlbum:fail UNKOWN ERROR3",
    "errCode": 12,
    "code": 12
    }
    

更多关于uni-app getImageInfo获取网络图片异常,saveImageToPhotosAlbum保存网络图片的临时路径异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

不支持网络路径:https://uniapp.dcloud.io/api/media/image?id=saveimagetophotosalbum
先调用下载接口,再保存到相册

更多关于uni-app getImageInfo获取网络图片异常,saveImageToPhotosAlbum保存网络图片的临时路径异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我知道不支持网络图片,但是实在不是可以用uni.getImageInfo得到本地的临时路径,然后保存吗?现在这样也不行了。。。 必须要uni.uni.downloadFile下载得到临时路径才能保存。。。?

uni.getImageInfo(OBJECT) 获取图片信息。 src String 是 图片的路径,可以是相对路径,临时文件路径,存储文件路径,网络图片路径

这个接口无法获取网络图片了?

回复 zhangyq: 理论上uni.getImageInfo功能可以达到,但是uni.getImageInfo毕竟不是专用于下载的,下载尽量使用uni.downloadFile

这是一个典型的网络图片处理路径问题。在uni-app中,uni.getImageInfo获取网络图片时返回的临时路径可能不包含文件后缀,但实际文件格式由type字段标识(如jpeg)。

从你的测试结果看:

  1. 直接使用无后缀的临时路径保存成功,说明系统能正确识别文件格式
  2. 手动添加后缀后保存失败,可能是因为路径格式被破坏

解决方案:

  • 直接使用uni.getImageInfo返回的原始path,不要手动修改
  • 确保网络图片URL可访问且格式正确
  • 检查应用相册权限是否已授权

代码优化:

uni.getImageInfo({
  src: 'https://www.ahuoban.com/data/attachment/forum/202103/01/173007qrcksk85ckkce9c0.jpg',
  success: (image) => {
    uni.saveImageToPhotosAlbum({
      filePath: image.path, // 使用原始path
      success: (res) => {
        uni.showToast({ title: '保存成功' });
      },
      fail: (error) => {
        console.error('保存失败:', error);
      }
    });
  },
  fail: (error) => {
    console.error('获取图片信息失败:', error);
  }
});
回到顶部