选择用户文件
选择用户文件
终端用户有时需要分享、保存一些图片、视频等用户文件,开发者需要在应用中支持此类使用场景。此时,开发者可以使用OpenHarmony系统预置的文件选择器(FilePicker),实现用户文件选择及保存能力。
根据用户文件的常见类型,文件选择器(FilePicker)分别提供以下接口:
PhotoViewPicker:适用于图片或视频类文件的选择与保存。
DocumentViewPicker:适用于文档类文件的选择与保存。
AudioViewPicker:适用于音频类文件的选择与保存。
选择图片或视频类文件
导入选择器模块。
import picker from '@ohos.file.picker';
1创建图库选择选项实例。
const photoSelectOptions = new picker.PhotoSelectOptions();
1选择媒体文件类型和选择媒体文件的最大数目。 以下示例以图片选择为例,媒体文件类型请参见PhotoViewMIMETypes。
photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE photoSelectOptions.maxSelectNumber = 5; // 选择媒体文件的最大数目
1
2创建图库选择器实例,调用select()接口拉起FilePicker界面进行文件选择。 文件选择成功后,返回PhotoSelectResult结果集,可以根据结果集中URI进行文件读取等操作。
const photoPicker = new picker.PhotoViewPicker(); photoPicker.select(photoSelectOptions) .then(async (photoSelectResult) => { let uri = photoSelectResult.photoUris[0]; // 获取到到图片或者视频文件的URI后进行文件读取等操作 }) .catch((err) => { console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`); })
1
2
3
4
5
6
7
8
9
选择文档类文件
导入选择器模块。
import picker from '@ohos.file.picker';
1创建文档选择选项实例。
const documentSelectOptions = new picker.DocumentSelectOptions();
1创建文档选择器实例。调用select()接口拉起FilePicker界面进行文件选择。 文件选择成功后,返回被选中文档的URI结果集。开发者可以根据结果集中URI做进一步的处理。
说明:
目前DocumentSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
const documentViewPicker = new picker.DocumentViewPicker(); // 创建文件选择器实例 documentViewPicker.select(documentSelectOptions) .then((documentSelectResult) => { let uri = documentSelectResult[0]; // 获取到到文档文件的URI后进行文件读取等操作 }) .catch((err) => { console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`); })
1
2
3
4
5
6
7
8
9
选择音频类文件
导入选择器模块。
import picker from '@ohos.file.picker';
1创建音频选择选项实例。
const audioSelectOptions = new picker.AudioSelectOptions();
1创建音频选择器实例。调用select()接口拉起FilePicker界面进行文件选择。 文件选择成功后,返回被选中音频的URI结果集。开发者可以根据结果集中URI做进一步的处理。
例如通过文件管理接口根据URI拿到音频资源的文件句柄(FD),再配合媒体服务实现音频播放的开发,具体请参考音频播放开发指导。
说明:
目前AudioSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
const audioViewPicker = new picker.AudioViewPicker(); audioViewPicker.select(audioSelectOptions) .then(audioSelectResult => { let uri = audioSelectOptions[0]; // 获取到到音频文件的URI后进行文件读取等操作 }) .catch((err) => { console.error(`Invoke audioPicker.select failed, code is ${err.code}, message is ${err.message}`); })
1
2
3
4
5
6
7
8
9