Ошибка создания файла с большим двоичным объектом (реакция): объект должен иметь вызываемое свойство @@ итератора - PullRequest
0 голосов
/ 03 августа 2020

Я использую https://www.npmjs.com/package/react-image-file-resizer, чтобы взять файл, который я загрузил, и изменить его размер, прежде чем я отправлю его через серверный API, который выполняет некоторый анализ.

Прямо сейчас я получение ошибки:

TypeError: не удалось создать 'File': объект должен иметь вызываемое свойство @@ итератора

Насколько я понимаю, конструктор файла может принимать BLOB-объект в качестве первого аргумента и что функция изменения размера предоставляет этот BLOB-объект. Итак, я не уверен, где я закорачиваю. Я знаю, что мой ввод хорош, поскольку у меня есть другое средство изменения размера, вызываемое в том же работающем компоненте (он предоставляет версию файла с измененным размером в кодировке base64, который я показываю как исходное изображение перед обработкой)

Соответствующий код это:

uploadImageHandler = (event) => {
    const tempImage = event.target.files[0];
    const imageType = tempImage.type;

    Resizer.imageFileResizer(
      tempImage,
      300,
      300,
      imageType,
      100,
      0,
      (uri) => {
        const file = new File(uri, tempImage.name);
      },
      'blob',
    );
};

Когда я делаю console.log на uri непосредственно перед тем, как я попытаюсь сделать new File, он вернет

Blob {size: 127332, type: "image/image/jpeg"}
size: 127332
type: "image/image/jpeg"
__proto__: Blob
arrayBuffer: ƒ arrayBuffer()
size: (...)
slice: ƒ slice()
stream: ƒ stream()
text: ƒ text()
type: (...)
constructor: ƒ Blob()
Symbol(Symbol.toStringTag): "Blob"
get size: ƒ size()
get type: ƒ type()
__proto__: Object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...