HarmonyOS鸿蒙Next中使用request.download下载图片和视频后存放在了FA模型的应用存储路径中:'${featureAbility.getContext().getFilesDir()}/test.txt',用img组件的src填写存放的路径却不生效

HarmonyOS鸿蒙Next中使用request.download下载图片和视频后存放在了FA模型的应用存储路径中:’${featureAbility.getContext().getFilesDir()}/test.txt’,用img组件的src填写存放的路径却不生效 如题:使用request.download下载图片和视频后存放在了FA模型的应用存储路径中:’${featureAbility.getContext().getFilesDir()}/test.txt’,用img组件的src填写存放的路径却不生效,该怎么展示我通过网络链接下载到应用路径下的照片和视频。路径应该怎么处理。

照片下载的存储路径是


更多关于HarmonyOS鸿蒙Next中使用request.download下载图片和视频后存放在了FA模型的应用存储路径中:'${featureAbility.getContext().getFilesDir()}/test.txt',用img组件的src填写存放的路径却不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

img组件支持的路径写法为 file://data/storage…

更多关于HarmonyOS鸿蒙Next中使用request.download下载图片和视频后存放在了FA模型的应用存储路径中:'${featureAbility.getContext().getFilesDir()}/test.txt',用img组件的src填写存放的路径却不生效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


还想知道为什么使用这个路径写法视频无法正常播放,显示 “Cannot find base path of data/storage/el2/base/haps/entry/files”,完整路径是 ‘file://data/storage/el2/base/haps/entry/files/Blue_Sky_and_Clouds_Timelapse_0892__Videvo_preview.mp4’,而图片使用相同的路径却可以正常读取。

用系统api看下,文件是否存在。

文件是存在的,好像是因为js video组件不支持读取沙盒路径的文件,

我也是这样,我图片没法展示啊

在HarmonyOS鸿蒙Next中,使用request.download下载的图片和视频存储在FA模型的应用存储路径中,路径为${featureAbility.getContext().getFilesDir()}/test.txt。如果使用img组件的src属性直接填写该路径,可能无法正确加载图片或视频。这是因为img组件的src属性通常需要指向一个有效的URI或文件路径,而直接使用文件系统路径可能不被识别。

要解决这个问题,可以使用File对象或FileReader来读取文件内容,并将其转换为img组件可识别的格式,如base64编码。具体步骤如下:

  1. 使用File对象读取下载的文件。
  2. 使用FileReader将文件内容转换为base64编码。
  3. base64编码的字符串赋值给img组件的src属性。

示例代码:

const filePath = `${featureAbility.getContext().getFilesDir()}/test.txt`;
const file = new File(filePath);
const reader = new FileReader();
reader.onload = function() {
    const base64 = reader.result;
    imgElement.src = base64;
};
reader.readAsDataURL(file);

在HarmonyOS鸿蒙Next中,img组件的src属性通常用于加载网络图片或应用资源路径。如果你将图片或视频下载到应用存储路径中,直接使用文件路径可能无法正确加载。建议使用file://协议来指定本地文件路径,例如:src="file://${featureAbility.getContext().getFilesDir()}/test.txt"。如果仍然不生效,请检查文件路径是否正确,并确保文件已成功下载到指定位置。

回到顶部