首先,通过 选择器 配置访问文件类型,音视频、文稿、文件等均可,例如如下文件类型
['.txt', '.log', '.csv', '.ini', '.conf', '.md', '.markdown', '.rtf', '.json', '.xml', '.ets', '.java', '.py', '.c', '.cpp', '.h', '.html']
选中的文件数量可通过 maxSelectNumber 控制,回调结果为字符串数组 Array<string>
其次,将获取到的文件通过 文件管理 进行数据处理,例如转码 Base64
最后,将二者按需结合即可
// 创建文件选择项实例
let documentSelectOptions = new picker.DocumentSelectOptions;
// 指定访问文件目录
// documentSelectOptions.defaultFilePathUri = 'file://docs/storage/Users/iMed/file';
// 设置文件后缀类型
documentSelectOptions.fileSuffixFilters = ['png', 'jpg', 'jpeg', 'txt', '.pdf', '.word', '.doc', 'docx', '.xls', '.xlsx', '.ppt', '.pptx'];
// 设置最大选择数量
if (selectType == 'more') {
if (1 < maxNumber) { // 可定义选择数量,不设置默认多选
documentSelectOptions.maxSelectNumber = maxNumber;
}
} else {
documentSelectOptions.maxSelectNumber = 1;
}
// 创建文件选择实例
let documentPicker = new picker.DocumentViewPicker;
// 调用 select 接口拉起 filePicker 应用界面进行选择
documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
// 选中文件回调
console.info('[附件选择] - 回调');
console.info(JSON.stringify(documentSelectResult));
// 读取文件内容
const uri = documentSelectResult[0];
let file = fs.openSync(uri, fs.OpenMode.READ_WRITE);
// const file = fs.openSync(uri, fs.OpenMode.READ_ONLY);
let buf = new ArrayBuffer(4096);
fs.readSync(file.fd, buf);
let buffArr = new Uint8Array(buf);
// 编码 Base64
let helper = new util.Base64Helper;
const base64Data = helper.encodeToStringSync(buffArr);
console.info('[base64 data]');
console.info(base64Data);
// do something ...

DocumentViewPicker 组件调用后效果
以上便是此次分享的全部内容,希望能对大家有所帮助!