У меня есть приложение create-реагировать, которое обновляет прошивку подключенных устройств Bluetooth.
Для этого мне нужно преобразовать файл прошивки (.zip) в массив Uint8Array.
Файл прошивки сохраняется локально в моей папке public / folder
И поэтому я пытаюсь извлечь эти байты с помощью этой функции:
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'
Но это также не работает
Любая помощь будет с благодарностью