HarmonyOS 鸿蒙Next 保存本地图片/视频 到相册(Failed to check extension)

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 保存本地图片/视频 到相册(Failed to check extension) 保存本地图片/视频 到相册出现(Failed to check extension),请问怎么处理

SaveButton({
  icon: SaveIconStyle.FULL_FILLED,
  text: SaveDescription.SAVE
})
.width($r('app.float.dimension_80'))
.height('100%')
.fontSize($r('app.float.dimension_12'))
.iconSize($r('app.float.dimension_22'))
.iconColor($r('app.color.home_third_page_text_color2'))
.fontColor($r('app.color.home_third_page_text_color2'))
.backgroundColor(Color.White)
.layoutDirection(SecurityComponentLayoutDirection.VERTICAL)
.onClick((event: ClickEvent, result: SaveButtonOnClickResult) => {
  if (result == SaveButtonOnClickResult.SUCCESS) {
    let params: Record<string, string> = {
      'currentIndex': this.currentIndex.toString(),
      'controlType': LocalFileControl.FILE_SAVE
    };
    EmitterUtil.emitEvent(EmitterUtil.HOME_THIRD_PAGE_FILE_CONTROL, params);
  }
});

static async saveLocalPhotoAlbum(context: Context, url: string, fileType: string) {
  try {
    // 使用 fs 模块读取本地文件数据
    const localFile = await fs.open('file://' + url, fs.OpenMode.READ_WRITE);
    const mFileBuffer = new ArrayBuffer(localFile.fd);

    // 获取相册路径
    let helper = photoAccessHelper.getPhotoAccessHelper(context);
    let mPhotoType = photoAccessHelper.PhotoType.VIDEO;

    if (fileType != null && 
        (fileType == ImageTypeUtil.JPG || 
         fileType == ImageTypeUtil.JPEG || 
         fileType == ImageTypeUtil.PNG || 
         fileType == ImageTypeUtil.IMAGE_JPEG)) {
      mPhotoType = photoAccessHelper.PhotoType.IMAGE;
    }

    let uri = await helper.createAsset(mPhotoType, fileType);
    let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);

    // 写入文件
    await fs.write(file.fd, mFileBuffer);

    // 关闭文件
    await fs.close(file.fd);
    
    ToastUtils.showToast($r('app.string.toast_home_content2'));
  } catch (error) {
    console.error("error is " + JSON.stringify(error));
    ToastUtils.showToast($r('app.string.toast_home_content3'));
  }
}

更多关于HarmonyOS 鸿蒙Next 保存本地图片/视频 到相册(Failed to check extension)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

针对帖子标题“HarmonyOS 鸿蒙Next 保存本地图片/视频 到相册(Failed to check extension)”的问题,这里提供一个可能的解决方案:

在HarmonyOS鸿蒙Next系统中,当你尝试保存图片或视频到相册时遇到“Failed to check extension”错误,这通常意味着系统在检查文件扩展名时遇到了问题。这可能是由于文件没有正确的扩展名,或者系统无法识别该扩展名。

为了解决这个问题,你可以尝试以下方法:

  1. 确保文件有正确的扩展名:检查你要保存的文件是否拥有正确的图片(如.jpg, .png)或视频(如.mp4, .avi)扩展名。如果扩展名缺失或错误,请手动添加或更正。

  2. 使用系统提供的API保存文件:鸿蒙系统提供了专门的API用于处理文件保存操作。确保你使用的是这些API,并且按照API文档的要求正确传递参数。

  3. 检查文件路径和权限:确保你的应用有权限访问和写入存储,并且文件路径是正确的。路径错误或权限不足都可能导致保存失败。

如果上述方法仍然无法解决问题,可能是系统本身的bug或特定环境下的兼容性问题。此时,你可以尝试更新系统到最新版本,或者查看鸿蒙系统的官方文档和社区论坛获取更多信息。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部