HarmonyOS使用fs.open无法打开photoViewPicker选择文件的uri

HarmonyOS使用fs.open无法打开photoViewPicker选择文件的uri。

HarmonyOS
2024-09-09 10:50:30
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

报错信息是因为使用fs.stat获取文件信息时直接使用photoViewPicker返回的uri是没有权限的,参考以下代码:

//缓存目录 
let context = getContext(this) as common.UIAbilityContext; 
let cacheDir = context.cacheDir; 
photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult: picker.PhotoSelectResult) => { 
  uris = photoSelectResult.photoUris; 
  console.info('photoViewPicker.select to file succeed and uris are:' + uris); 
  let uri: string = uris[0]; 
  let file = fs.openSync(uri, fs.OpenMode.READ_ONLY); 
  // 复制文件到缓存目录下 
  fs.copyFileSync(file.fd, cacheDir + '/test.jpeg') 
  fs.stat(cacheDir + '/test.jpeg').then((stat: fs.Stat) => { 
    console.info("get file info succeed, the size of file is " + stat.size); 
  }).catch((err: BusinessError) => { 
    console.error("get file info failed with error message: " + err.message + ", error code: " + err.code); 
  }); 
}).catch((err: BusinessError) => { 
  console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`); 
})

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsstat

分享
微博
QQ
微信
回复
2024-09-09 15:35:39
相关问题
fs.unlink接口无法删除文件
1868浏览 • 1回复 待解决
如何打开指定文件夹,选择文件返回
8731浏览 • 1回复 待解决
HarmonyOS fs模块读取文件问题
553浏览 • 1回复 待解决
使用web无法打开HarmonyOS网址
246浏览 • 1回复 待解决
HarmonyOS关于使用fs.copyfile问题
509浏览 • 1回复 待解决