开发者社区> 问答> 正文

红米手机不兼容getFileSystemManager.readFile

   const ctx = dd.createCanvasContext('signatureCanvas');
    ctx.toTempFilePath({
      success: (res) => {
        console.log('res', res);
        const fileManager = my.getFileSystemManager();
        fileManager.readFile({
          filePath: res.filePath,
          // encoding: "base64",
          success: (res) => {
            console.log('success res', res);
            if (res.success && res.data !== "") {
              const base64 = "data:image/png;base64," + res.data;
              console.log('base64', base64);

            } else {

            }
          },
          fail: (err) => {
            console.log(err);
          }
        });
      },
    });

image.png

能正常获取到图片路径,但读取不到数据

手机信息:
1698976008599.jpg

展开
收起
M_Seven 2023-11-03 09:53:57 149 0
4 条回答
写回答
取消 提交回答
  • 检查 API 使用权限:确保您的小程序已经获得读取文件系统的权限。在微信开发者工具中,您可以在 “项目设置 -> 权限管理” 中查看您的小程序是否具有该权限。
    测试不同的文件路径:确保您的文件路径是正确的,并且指向一个实际存在的文件。如果文件不存在,那么这个函数会返回错误。
    尝试使用其他函数:除了 getFileSystemManager.readFile 函数外,还有其他几个函数可以用来读取文件内容,比如 wx.getFileInfo 和 wx.getFileData。您可以尝试使用这些函数来代替原来的函数,看看是否能够成功读取文件内容。

    2023-11-04 13:56:28
    赞同 展开评论 打赏
  • 这个是一个读取本地文件的api。检查你的系统是不是没开启权限或者文件路径不正确。

    2023-11-03 19:36:09
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    "getFileSystemManager.readFile" 是 uni-app 提供的一个 API,用于读取本地文件。如果你在红米手机上使用该 API 出现错误,可能是由于以下几个原因:

    1. 系统权限限制:Android 系统从 Android 6.0 开始引入了运行时权限控制机制,这意味着应用程序需要在运行时向用户请求特定权限才能访问相应的资源。如果你的应用程序没有获得足够的权限,可能无法正常调用 getFileSystemManager.readFile。
    2. 文件路径错误:确保你在调用 getFileSystemManager.readFile 时传递的文件路径是正确的。请确保你已经检查过文件是否存在,以及路径字符串中的斜杠方向是否正确。
    3. 应用程序缓存问题:有时,由于应用程序缓存问题,可能需要清理应用程序缓存,然后再试一次。
    2023-11-03 12:21:58
    赞同 展开评论 打赏
  • 从你的描述来看,你正在尝试读取一个图片文件,但是你遇到了一个错误,错误信息是“指定的 filePath 文件不存在 https://resource/178484f679d39a7811c870adc1505b7e.image”。这个错误提示很明确地表明了问题所在:你试图读取的文件不存在。

    以下是一些可能的原因和解决方案:

    1. 文件路径错误:请确认你提供的文件路径是否正确。在这个案例中,文件路径是硬编码的,这可能不适用于所有设备和环境。如果你的应用需要在不同的设备和环境中运行,你可能需要使用相对路径或者能够根据运行环境动态生成文件路径的方法。

    2. 文件不存在:你可能正在试图读取的文件并不存在。请确认该文件是否存在于你所提供的文件路径中。你可以尝试手动去访问这个文件,看是否能成功。

    3. 权限问题:你可能没有读取文件的权限。你需要确保你的应用有足够的权限可以读取这个文件。

    你可以尝试以下代码来检查文件是否存在:

    const fileManager = my.getFileSystemManager();
    fileManager.exists({
      filePath: res.filePath,
      success: (res) => {
        if (res.success) {
          console.log('File exists');
          fileManager.readFile({
            filePath: res.filePath,
            success: (res) => {
              console.log('success res', res);
              if (res.success && res.data !== "") {
                const base64 = "data:image/png;base64," + res.data;
                console.log('base64', base64);
              } else {
              }
            },
            fail: (err) => {
              console.log(err);
            }
          });
        } else {
          console.log('File does not exist');
        }
      },
    });
    

    这段代码会首先检查文件是否存在,如果存在,再尝试读取文件。

    2023-11-03 12:08:26
    赞同 展开评论 打赏
问答标签:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
Tangram 立即下载
360手机卫士 插件化漫谈 立即下载
手机京东Crash自动分析处理系统 立即下载