HarmonyOS 鸿蒙Next PhotoViewPicker获取到图片地址
HarmonyOS 鸿蒙Next PhotoViewPicker获取到图片地址
目前可以使用 fs.copyFile接口,来把文件拷贝到cache目录下再进行上传,
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-file-upload-download-V5
internal://cache路径是:/data/app/el2/100/base/您的包名/haps/entry/cache/
internal://cache 是用在上传下载中的,文件的本地存储路径,为应用的私有目录。
file:// 用于应用沙箱和媒体库中的文件,后续可通过使用@ohos.file.fs进行相关open、read、write等操作,实现文件分享。
参考:
// pages/xxx.ets
import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
// 获取应用文件路径
let context = getContext(this) as common.UIAbilityContext;
let cacheDir = context.cacheDir;
@Entry
@Component
struct Index12 {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('复制')
.onClick(async () => {
let uri = 'file://media/Photo/5/IMG_1718353652_004/IMG_004.jpg';
let file = fs.openSync(uri)
console.log('-------file',file.name)
fs.copyFileSync(file.fd,cacheDir+"/IMG_003.jpg")
fs.closeSync(file)
let file1 = fs.openSync(cacheDir+"/IMG_003.jpg")
console.log('-------file1',file1.name)
})
}
}
}
}
在HarmonyOS鸿蒙系统中,如果你正在使用PhotoViewPicker
组件来获取图片,并希望获取到所选图片的地址,以下是一些基本的实现思路:
PhotoViewPicker
组件主要用于图片的选择,它并不直接提供图片的文件路径,而是提供了所选图片的Uri
(统一资源标识符)。你可以通过这个Uri
来获取图片的位图(Bitmap)或者进一步处理。
-
获取Uri:在
PhotoViewPicker
的监听器中,你可以通过回调获取到所选图片的Uri
。 -
处理Uri:
- 如果你需要将图片保存到指定路径,可以使用
ContentResolver
和InputStream
来读取Uri
对应的数据,然后将其写入文件。 - 如果你只需要在应用中显示图片,可以直接使用
Uri
和ImageView
或其他图像显示组件。
- 如果你需要将图片保存到指定路径,可以使用
-
注意权限:确保你的应用已经请求并获得了读取外部存储的权限(如果
Uri
指向的是外部存储)。 -
示例代码:由于篇幅限制,无法提供完整的代码示例,但你可以参考HarmonyOS的官方文档或开发者社区中的示例代码来实现这一功能。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html