create-react-app javascript将文件转换为Uint8Array

问题描述 投票:0回答:1

我有一个create-react-app,用于更新连接的蓝牙设备的固件。

为了执行此操作,我需要将固件文件(.zip)转换为Uint8Array。

固件文件在本地保存在我的公共/文件夹中

因此,我尝试使用此功能提取这些字节:

var fimware_zip = process.env.PUBLIC_URL + '/ZioV8_1.2.7.zip'    
this.loadFile(fimware_zip)

将loadFile定义为:

  // Load a file, set the bytes to firmware_byte_array
  loadFile = async (my_file) => {

    console.log(my_file)
    var fr = new FileReader();

    fr.onload = (e) =>
    { 
      var arrayBuffer = e.target.result;
      var array = new Uint8Array(arrayBuffer);
      this.setState({ firmware_byte_array: array})
    }

    fr.readAsArrayBuffer(my_file);
  }

但是出现以下错误:

Unhandled Rejection (TypeError): Failed to execute 'readAsArrayBuffer' on 'FileReader': parameter 1 is not of type 'Blob'.

我一直在寻找如何将文件转换为Blob类型的方法,但我做不到。

我也尝试过将.zip文件放在src /文件夹中,然后使用导入

import fimware_zip from './ZioV8_1.2.7.zip'

但是那也不起作用

任何帮助将不胜感激

javascript blob create-react-app
1个回答
0
投票

您只能在Blob或File对象(例如从readAsArrayBuffer元素获得的对象)上使用readAsArrayBuffer

我假设此应用程序涉及某种服务器进程,在这种情况下,您可以使用input type="file"

fetch
© www.soinside.com 2019 - 2024. All rights reserved.