Php Symfony 5$表格->;Isubmitted()为文件上载返回False
我正试图通过我创建的API端点控制器上载文件: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
/**
* @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()
输出并在必要时添加它。