You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo React Native中readAsDataURL生成无效PNG Base64字符串问题

React Native Expo项目PNG转Base64后存储Blob无效问题

我在做一个基于Expo的React Native学生项目,流程如下:

  • 通过DocumentPicker获取图片
  • 移动端使用fetch获取文件Blob,再通过FileReader的readAsDataURL方法转换为Base64字符串;Web端直接使用返回的file.uri(本身就是Base64格式)
  • 将生成的Base64发送至API,再以Blob形式存储到数据库

目前遇到的问题:JPG/JPEG格式的图片转Base64后能正常存储到数据库,但PNG格式的却无效。想确认这是不是已知问题,或是因为未处理PNG的alpha通道导致的?

排查方向建议

  • 验证Base64格式正确性:确认PNG的Base64前缀为data:image/png;base64,,检查是否存在字符截断、乱码或长度异常的情况
  • 排查移动端转换流程:在fetch获取PNG Blob后打印Blob大小;FileReader读取完成后,对比PNG与JPG的Base64开头部分,查看是否存在差异
  • 检查后端处理逻辑:确认API解析PNG Base64转Blob的逻辑是否与JPG一致,是否因alpha通道存在导致解码失败
  • 确认DocumentPicker的PNG识别:查看DocumentPicker返回的PNG文件信息,确认mimeType是否为image/png、文件路径是否正确

内容的提问来源于stack exchange,提问作者groeterud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:10:47