HarmonyOS鸿蒙Next中PhotoViewPicker如何获取原始信息?

HarmonyOS鸿蒙Next中PhotoViewPicker如何获取原始信息? 通过PhotoViewPicker选择文件只能获取到uri–格式为datashare://image/13455

实际使用需要copy到沙箱,但在copy的时候需要定义文件名与文件类型,但在fs提供的方法中只有stat可以获取信息,可是没有原始信息,请问我该如何?

10 回复

到现在依然有问题

更多关于HarmonyOS鸿蒙Next中PhotoViewPicker如何获取原始信息?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的,还是有待提升,估计现在只有next版本,真正需要了才会在下个版本提供,

选择我选择图片,视频或者附件,需要上传到服务器。但是上传到服务器,他需要将选择以后的uri 转换成沙盒内文件进行上传,我都不知道文件类型。没办法通过fs.copy操作。不然类型对应不上去。而且上传到服务器文件名称也对应不上,

目前DocumentSelectOptions功能不完整, 如需获取文件名称,请使用startAbilityForResult接口。具体使用可参考以下文档:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/file-management/select-user-file.md

我没有使用document这个,使用的是:PhotoSelectOptions,也是需要向document一样才能获取到名称?

DocumentSelectOptions是文件选择,包含图片是、视频等等,需要获取文件名称,请使用startAbilityForResult接口。

好的,感谢,

基本信息
姓名:张三
职位:软件工程师
技能:Python, Java, C++

工作经验
2018-2020: 软件开发工程师,ABC公司

  • 负责开发和维护公司的核心产品
  • 使用Python和Java进行后端开发

2020-至今: 高级软件工程师,XYZ公司

  • 领导团队完成多个大型项目
  • 优化系统性能,提高代码质量

无语,社区不够活跃啊,问题三天没人回复😂,

在HarmonyOS鸿蒙Next中,PhotoViewPicker 是一个用于选择图片的组件。要获取图片的原始信息,可以通过 PhotoViewPickerselect 方法返回的 PhotoSelectResult 对象来获取。PhotoSelectResult 包含了用户选择的图片的详细信息,包括图片的URI、文件大小、文件类型等。

具体步骤如下:

  1. 使用 PhotoViewPickerselect 方法启动图片选择器。
  2. select 方法的回调中,获取 PhotoSelectResult 对象。
  3. 通过 PhotoSelectResult 对象的 getOriginalUri 方法获取图片的原始URI。
  4. 使用 FileInputStream 等API读取URI对应的文件内容,从而获取图片的原始信息。

示例代码片段:

import photoViewPicker from '@ohos.file.photoviewpicker';

let photoSelectOptions = new photoViewPicker.PhotoSelectOptions();
photoSelectOptions.MIMEType = photoViewPicker.PhotoViewMIMETypes.IMAGE_TYPE;
photoSelectOptions.maxSelectNumber = 1;

photoViewPicker.select(photoSelectOptions).then((photoSelectResult) => {
    let originalUri = photoSelectResult.photoUris[0];
    // 使用originalUri获取图片的原始信息
}).catch((err) => {
    console.error(`PhotoViewPicker failed, code is ${err.code}, message is ${err.message}`);
});

在HarmonyOS鸿蒙Next中,使用PhotoViewPicker获取图片的原始信息,可以通过PhotoViewPickerselect方法选择图片,并获取其URI。然后,使用Image组件的getImageInfo方法获取图片的详细信息,包括宽度、高度、格式等。具体代码如下:

let photoPicker = new picker.PhotoViewPicker();
photoPicker.select().then((photoSelectResult) => {
    let uri = photoSelectResult.photoUris[0];
    image.getImageInfo(uri).then((imageInfo) => {
        console.log("Image width: " + imageInfo.size.width);
        console.log("Image height: " + imageInfo.size.height);
        console.log("Image format: " + imageInfo.mimeType);
    });
});
回到顶部