Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用blob(react)创建文件时出错:对象必须具有可调用的@iterator属性_Javascript_Reactjs_Image - Fatal编程技术网

Javascript 使用blob(react)创建文件时出错:对象必须具有可调用的@iterator属性

Javascript 使用blob(react)创建文件时出错:对象必须具有可调用的@iterator属性,javascript,reactjs,image,Javascript,Reactjs,Image,我正在使用一个我上传的文件,并调整它的大小,然后再将其发送到一个后端API进行分析 现在我得到了一个错误: TypeError:构造“文件”失败:对象必须具有可调用的 @@迭代器属性 我的理解是,文件构造函数可以将blob作为第一个参数,并且resizer函数提供了该blob。所以,我不确定我在哪里短路。我知道我的输入是好的,因为我在工作的同一组件中调用了另一个大小调整器(它提供了大小调整文件的base64编码版本,在处理之前显示为原始图像) 有关守则如下: uploadImageHandler

我正在使用一个我上传的文件,并调整它的大小,然后再将其发送到一个后端API进行分析

现在我得到了一个错误:

TypeError:构造“文件”失败:对象必须具有可调用的 @@迭代器属性

我的理解是,文件构造函数可以将blob作为第一个参数,并且resizer函数提供了该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
时,它会返回

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

在版本0.4.2中,您可以将的“文件”属性赋予输出类型。有关详细信息:

在0.4.2版中,您可以为输出类型提供“文件”属性。详情如下: