HarmonyOS 鸿蒙Next文件的"internal"协议类型路径怎么获取

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

HarmonyOS 鸿蒙Next文件的"internal"协议类型路径怎么获取

PhotoViewPicker获取到图片地址:file://media/Photo…

然后文件上传需要的"internal"协议类型路径怎么获取,

cke_124.png

4 回复

在使用photoViewPicker获取到图片地址时,返回的路径格式是file://media/Photo…。这种路径不能直接用于文件上传,因为上传需要内部协议类型的路径。原因是file://协议表示的是文件的通用路径,而内部协议路径是系统实际存储文件的位置,适合上传操作。

要将file://路径转换为内部协议路径,可以通过解析URL并获取实际文件路径。以下是一个小demo:

import ohos.utils.net.Uri;
public class FilePathConverter {
public String getInternalPath(String fileUrl) {
Uri uri = Uri.parse(fileUrl);
return uri.getDecodedPath();  // 获取实际文件路径
}
}


FilePathConverter converter = new FilePathConverter();
String internalPath = converter.getInternalPath(“file://media/Photo…”);
if (internalPath != null) {
System.out.println(internalPath);  // 输出 /media/Photo…
} 

通过解析URL,可以获得适用于文件上传的内部路径,确保文件能被正确处理和上传。

Uri好像无法导入

我也没办法导入 解决了吗

在HarmonyOS鸿蒙Next中,获取文件的"internal"协议类型路径通常涉及使用系统API。你可以通过调用如context.getFilesDir()等API来获取应用的内部存储目录,该路径即为"internal"协议类型路径。此外,确保你的应用在config.json或相应的配置文件中已声明了必要的存储权限。如果问题依旧没法解决,请加我微信,我的微信是itying888。

回到顶部