Php Symfony 5$表格->;Isubmitted()为文件上载返回False

Php Symfony 5$表格->;Isubmitted()为文件上载返回False,php,symfony,symfony5,Php,Symfony,Symfony5,我正试图通过我创建的API端点控制器上载文件: /** * @Route("/upload", methods="POST") */ public function upload(Request $request) { $form = $this->createForm(UserFileType::class); $form->handleRequest($request); if (!$form->isSu

我正试图通过我创建的API端点控制器上载文件:

/**
 * @Route("/upload", methods="POST")
 */
public function upload(Request $request)
{
    $form = $this->createForm(UserFileType::class);
    $form->handleRequest($request);

    if (!$form->isSubmitted()) {
        dd($request->files->get('file'));
    }
   ...
dd($request->files->get('file'))
正在按预期显示我的文件,因此我不清楚当方法接收带有数据的
多部分/表单数据时,为什么
isSubmitted()
返回false。我正在通过
Postman
提交
POST
请求。为什么不提交表格

用户文件类型:

class UserFileType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('file', FileType::class, [
                'mapped' => false,
                'required' => true,
                'constraints' => [
                    new File([
                        'maxSize' => '2M',
                        'mimeTypes' => [
                            'application/pdf',
                            'application/x-pdf',
                        ],
                        'maxSizeMessage' => 'The file size must not exceed {{ limit }} {{ suffix }}.',
                        'mimeTypesMessage' => 'The file type {{ type }} is not valid',
                    ])
                ],
            ]);
    }

对于从
AbstractType
派生的表单类,表单使用when命名

您可以通过转储
$form->getName()
来确认这一点

现在,实现的
$form->handleRequest
方法在提交表单之前通过执行大量检查

  • 您的表单未通过请求处理程序
    handleRequest
    方法提交,因为请求中的字段未与表单名称正确映射在一起

    您必须以以下方式映射HTTP POST请求中的表单名称:

    [ "user_file" =>  [ "file" => <uploaded file> ] ]
    

    什么是
    UserFileType
    ?此处定义的字段可能与请求中的字段不匹配。或者是
    UserFileType
    表单类上的方法不匹配。@OluwafemiSule请参阅编辑添加UserFileType。在
    UserFileType
    中构建表单时,设置表单方法会得到什么
    $builder->setMethod('POST')->add(“…”)
    在向$builder添加->setMethod('POST')并过账后,提交的文件仍然返回false。请检查
    $form->getErrors()
    输出并在必要时添加它。