PhotoViewPicker:适用于图片或视频类型文件的选择与保存
1.导入选择器模块和文件管理模块。
import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';
2.创建图片
const photoPicker = new picker.PhotoViewPicker()
3.定义选择参数
const options = new picker.PhotoSelectOptions()
options.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE //选择类型,有image,video此处image
options.maxSelectNumber = 1 //可选文件数量
4.创建图库选择器实例,调用select()接口拉起图库界面进行文件选择,将选择参数传入
const res = await photoPicker.select(options)
返回值为Promise,此处需要await或者.then,用来获取用户文件 点开PhotoSelectResult可以看见返回值为string数组
class PhotoSelectResult {
photoUris: Array<string>;
isOriginalPhoto: boolean;
}
5.获取用户文件路径
const filePath = res.photoUris[0]
6.目前HarmonyOS上传只能上传缓存中文件,这需要将文件先Copy到缓存中,这要用到@ohos.file.fs
//获取缓存文件路径
const cachePath = getContext().cacheDir
//拼接缓存文件名称
const cacheFileName = Date.now() + '.jpg'
const cacheFilePath = cachePath + '/' + cacheFileName
// 由于uri不可以直接copy,需要获取到用户文件的fd进行copy
const fileFd = fs.openSync(filePath).fd
// 将文件copy到缓存中
fs.copyFileSync(fileFd, cacheFilePath)
7.文件上传
request.uploadFile(context: BaseContext, config: UploadConfig): Promise<UploadTask>
返回值UploadTask提供监听数据上传事件,常用的有on,常用来监听上传进度
upload.on('progress', async (uploadedSize, totalSize) => {///}