p***@touch-ez.com.cn
p***@touch-ez.com.cn
  • 发布:2025-06-18 10:18
  • 更新:2025-09-22 19:08
  • 阅读:526

uniapp开发鸿蒙next 使用 getFileSystemManager 中的readFileSync 异常问题

分类:uni-app

前置条件:
环境:
编辑器: HBuilder X4.71-alpha
鸿蒙手机: nova 13
软件版本: 5.0.1.120

步骤:
1、fileSystemManager = uni.getFileSystemManager();
2、先选取图片后获取地址,再用 fileSystemManager.readFileSync读取图片,报错: readFileSync:fail filePath No such file or directory;代码如下:

        chooseMedia() {  
            uni.chooseMedia({  
                count: 1,  
                mediaType: ['image'],  
                sourceType: ['album'],  
                success: (res) => {   
                    this.tempFilePath = res.tempFiles[0].tempFilePath;  
                    try {   
                         fileSystemManager.readFileSync(res.tempFiles[0].tempFilePath);   
                    } catch(err) {  
                        console.log('readFileSync', err)  //  
                    }   
                },  
                fail: (err) => {  
                    console.log('chooseMedia', err);  
                }  
            })  
        },  

3、错误信息:readFileSync:fail filePath No such file or directory

2025-06-18 10:18 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_yuhe

DCloud_UNI_yuhe

临时的解决方案,可以将下方的 har 包 ,添加到 harmony-configs/libs 之后,重新运行

此方案是 uniapp 的解决方案,x上的见下方的附件

  • 小帅008

    还是提示 readFile:fail filePath No such file or directory Invalid argument ,使用的是 ,代码片段 uni.chooseImage({

    count: count,

    sizeType: sizeType,

    sourceType: sourceType,

    success(res) {

    const path = res.tempFilePaths[0];

    uni.getFileSystemManager().readFile({

    filePath: path, // 选择图片返回的相对路径

    encoding: "base64", // 编码格式

    success: (res) => {

    console.log("data:image/png;base64," + res.data); // 完整的base64字符串,包含mime和编码数据

    },

    fail(err) {

    console.log("------------------------>>>>>>", err);

    console.log("------------------------>>>>>>", res.tempFilePaths[0]);

    },

    });

    },

    2025-09-16 09:13

  • DCloud_UNI_yuhe

    回复 b***@163.com: 删除了unpackage之后重新运行之后尝试一下呢?我这里测试是正常的

    2025-09-16 11:02

  • 小帅008

    回复 DCloud_UNI_yuhe: 我使用的是 uniapp x ,目录结构我贴在最下面了,但是删除了 unpackage 还是不行

    2025-09-16 14:20

  • DCloud_UNI_yuhe

    回复 b***@163.com: 这个不是x的,是uniapp 的

    2025-09-16 14:24

DCloud_UNI_yuhe

DCloud_UNI_yuhe

chooseMedia 的实现方式有差异,你使用 chooseImage 试一下

  • p***@touch-ez.com.cn (作者)

    使用chooseImage 选择图片没有问题,返回的链接是(data/storage/el2/base/cache/HBuilder/uni-media/1750227489399_0.png),这个路径是可以readFileSync的,可以正常转换;

    但 sourceType: [ 'camera'] 这个问题又出现了。

    2025-06-19 10:42

  • 小帅008

    回复 p***@touch-ez.com.cn: 同样的问题,请问现在解决了吗

    2025-09-15 17:36

4***@qq.com

4***@qq.com - 安卓程序员

同问
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['camera'],
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths),res.tempFiles);
CommonUtil.readFile(res.tempFilePaths[0]).then(res => {
const realNamePhotoBase64 = res as string
changeFace(realNamePhotoBase64)
})
}
});
得到的路径是"file://media/Photo/452/IMG_1753341591_443/IMG_20250724_151811.jpg"

  • 小帅008

    我也是报这个错误

    2025-09-16 09:14

seasonZzz

seasonZzz - season

请问有解决方法吗

小帅008

小帅008

请问解决没有,我也是这个问题,我试过了 ios 和安卓,都能读取到,但是鸿蒙使用拍照后就获取不到

  • DCloud_UNI_yuhe

    提供了一下临时解决方案,可以看一下

    2025-09-15 17:44

小帅008

小帅008

@DCloud_UNI_yuhe

DCloud_UNI_yuhe

DCloud_UNI_yuhe

x项目的临时解决方案,在harmony-configs/libs上,添加如下文件

DCloud_UNI_yuhe

DCloud_UNI_yuhe

hbuilderx 4.81 已修复

  • Stalker丶

    想问一下,已经升到4.8.1了,但是在鸿蒙下,选择图片-勾选了【原图】后,还是报这个错误,路径是"file://media/Photo/..."就报这个错,errMsg: "readFile:fail filePath No such file or directory Invalid argument"

    2025-09-25 15:02

  • DCloud_UNI_yuhe

    回复 Stalker丶: harmony-connfigs 下有 oh-package 吗? 删除 unpackage 之后重新运行一下看看呢?

    2025-09-25 20:32

  • Stalker丶

    回复 DCloud_UNI_yuhe: 有 oh-package,然后删除了 unpackage在运行还是一样的。

    2025-09-26 17:13

要回复问题请先登录注册