HarmonyOS鸿蒙Next中选择图片或者视频,是否可以指定文件类型

HarmonyOS鸿蒙Next中选择图片或者视频,是否可以指定文件类型 选择图片或者视频,是否可以指定文件类型,例如选择图片,除了是图片类型,是否可以指定后缀 png、jpg这样

3 回复

选择图片不可以指定类型,但是在用真机测的时候,您可以通过给let file2 = fs.openSync(data/storage/el2/base/files/${file1.name}, fs.OpenMode.READ_WRITE)的打印语句打断点,然后debug。在真机上触发选择图片事件,选择图片。最后选中打印语句,右键->Evaluate Expression…->输入file2.name即可查看图片类型

import { BusinessError } from '@kit.BasicServicesKit';
import fs from '@ohos.file.fs';
import picker from '@ohos.file.picker';

@Entry
@Component
struct Index3 {
  @State message: string = 'Hello World';
  async photoPick() {
    try {
      let PhotoSelectOptions = new picker.PhotoSelectOptions();
      PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
      PhotoSelectOptions.maxSelectNumber = 5;
      let photoPicker = new picker.PhotoViewPicker();
      photoPicker.select(PhotoSelectOptions)
        .then(async (PhotoSelectResult: picker.PhotoSelectResult) => {
          console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
          let file1 = fs.openSync(PhotoSelectResult.photoUris[0])
          fs.copyFileSync(file1.fd, `data/storage/el2/base/files/${file1.name}`)

          let file2 = fs.openSync(`data/storage/el2/base/files/${file1.name}`, fs.OpenMode.READ_WRITE)
          console.log(`file fd ==> ${file2.fd} | file path ==> ${file2.path}`)
          // fs.closeSync(file1)
          // fs.closeSync(file2)
        }).catch((err: BusinessError) => {
        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
      });
    } catch (error) {
      let err: BusinessError = error as BusinessError;
      console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
    }
  }

  build() {
    Row() {
      Column() {
        Button(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(async () => {
            this.photoPick()
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中选择图片或者视频,是否可以指定文件类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,开发者可以通过Picker组件来选择图片或视频。Picker组件提供了PhotoViewPickerVideoViewPicker两种类型,分别用于选择图片和视频。开发者可以通过设置Pickertype属性来指定文件类型。例如,PhotoViewPickertype属性可以设置为'image'VideoViewPickertype属性可以设置为'video'。此外,开发者还可以通过PhotoViewPickerVideoViewPickerfilter属性来进一步筛选文件类型。例如,PhotoViewPickerfilter属性可以设置为['image/png', 'image/jpeg'],以仅允许选择PNG和JPEG格式的图片。VideoViewPickerfilter属性可以设置为['video/mp4', 'video/avi'],以仅允许选择MP4和AVI格式的视频。

在HarmonyOS鸿蒙Next中,选择图片或视频时,可以通过Intent的setType方法来指定文件类型。例如,使用"image/*"选择图片,"video/*"选择视频。如果需要更精确的类型限制,可以使用"image/jpeg""video/mp4"等具体MIME类型。此外,还可以通过Intent.EXTRA_MIME_TYPES传递一个MIME类型数组,进一步限制可选择的文件类型。

回到顶部