【问题标题】:Fetch error when convert base64 to blob on react-native在 react-native 上将 base64 转换为 blob 时获取错误
【发布时间】:2021-10-18 10:32:29
【问题描述】:

当我在 React Native 中运行以下代码以在 Android 上将 base64 转换为 blob 时发生此错误

let url = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...';
let res = await fetch(url);
let blob = await res?.blob();

【问题讨论】:

    标签: react-native base64 blob


    【解决方案1】:

    您使用的是哪个react-native-version

    const url = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...';
    
    const getBlob = async (uri) => {
      const res = await fetch(uri);
      return res.blob();
    };
    
    const blob = await getBlob(url);
    

    应该有效

    【讨论】:

    • 版本 react-native 0.64.2
    • 我试了代码,又报错了
    • 我能看到它为什么不工作的唯一可能性是因为 base64 数据流中的一些错误。你有没有机会解码这个?
    • 为什么它可以在IOS中工作?但不适用于安卓
    • 因为JavascriptCore iOS 和安卓之间的差异。在这里阅读reactnative.dev/docs/javascript-environment
    【解决方案2】:

    如果您想将Base64 转换为blob,您可以使用以下方式:

    安装下面的包

    npm install buffer --save
    

    首先,将您的 Base64 转换为字节数组

    import { Buffer } from "buffer";
    
    
    const base64 = 'iVBORw0KGgoAAAANSUhEU ....'
    let your_bytes = Buffer.from(base64, "base64");
    

    然后将其转换为blob:

    const blob = new Blob([your_bytes], { type: 'YOUR TYPE' })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-28
      • 2019-10-03
      • 2022-10-17
      • 2013-09-10
      • 2021-01-08
      • 2019-10-05
      • 2019-06-02
      • 2019-07-12
      相关资源
      最近更新 更多