Я использую 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