Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs 手动将多个文件上载到Symfony后端(无表单)_Reactjs_Symfony_Symfony4 - Fatal编程技术网

Reactjs 手动将多个文件上载到Symfony后端(无表单)

Reactjs 手动将多个文件上载到Symfony后端(无表单),reactjs,symfony,symfony4,Reactjs,Symfony,Symfony4,我在尝试将多个文件从ReactJS应用程序发送到Symfony后端时遇到了一个问题 我上传了两个文件,但在我的Symfony后端只有一个可见。 数据是从ReactJS dropzone发送的,我仔细检查了这两个文件是通过formData发送的,我很好地使用了的“内容类型”:“多部分/表单数据”来发布数据 在“工作”选项卡中,表单数据详细信息显示有两个文件很好地附加到请求: ------WebKitFormBoundaryTif9sihCtI30UXXS内容配置:表单数据;name=“file”;

我在尝试将多个文件从ReactJS应用程序发送到Symfony后端时遇到了一个问题

我上传了两个文件,但在我的Symfony后端只有一个可见。

数据是从ReactJS dropzone发送的,我仔细检查了这两个文件是通过
formData
发送的,我很好地使用了
的“内容类型”:“多部分/表单数据”
来发布数据

在“工作”选项卡中,表单数据详细信息显示有两个文件很好地附加到请求:

------WebKitFormBoundaryTif9sihCtI30UXXS内容配置:表单数据;name=“file”;filename=“glacier-583419_960_720.jpg” 内容类型:图像/jpeg

------WebKitFormBoundaryTif9sihCtI30UXXS内容配置:表单数据;name=“file”;filename=“image ile.jpg”内容类型: 图像/jpeg

然而,在我的Symfony后端中,文件参数Bag仅显示一个文件:

return $request->files;
序列化响应:

{
    "parameters": {
        "file": {
            "test": false,
            "original_name": "glacier-583419_960_720.jpg",
            "mime_type": "image/jpeg",
            "error": 0
        }
    },
    "file_keys": [
        "error",
        "name",
        "size",
        "tmp_name",
        "type"
    ]
}
正如您所看到的,在“参数”中,只有一个文件而不是两个文件。


有人遇到过这个问题吗?我不知道会是什么问题?

我解决了我的问题,虽然很琐碎,但它可以帮助其他人将来阅读

根据发送的数据表中的指示:

------WebKitFormBoundaryTif9sihCtI30UXXS内容配置:表单数据;name=“file”;filename=“glacier-583419_960_720.jpg”内容类型:image/jpeg

------WebKitFormBoundaryTif9sihCtI30UXXS内容配置:表单数据;name=“file”;filename=“image ile.jpg”内容类型:image/jpeg

表单数据中添加的每个元素都具有相同的
名称
值。 问题是:

var tempFormData = new FormData();
setFormData(acceptedFiles.map((file)=>{
   tempFormData.append('file', file);
}));
更正代码:

var tempFormData = new FormData();
setFormData(acceptedFiles.map((file)=>{
   tempFormData.append(file.name, file);
}));
因此,错误不是来自Symfony,而是来自前端应用程序没有很好地格式化发送的数据