【问题标题】:No POST parameters when upload file上传文件时没有POST参数
【发布时间】:2013-03-16 18:00:30
【问题描述】:

我创建了一个上传文件表单,但是出现了一个很奇怪的bug... 当我上传文件时,symfony 看不到 POST 参数。

我的表单类:

class UploadDocumentForm extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
    $builder->add('name', 'text', array(
      'label' => 'Nom'
    ));
    $builder->add('file', 'file', array(
      'label' => 'Fichier'
    ));
  }

  public function getName()
  {
    return 'upload_document_form';
  }
}

我的模板:

<form action="{{ path('upload_file') }}" enctype="multipart/form-data" method="post">
    {{ form_widget(upload_file_form) }}
    <input type="submit" value="Envoyer le fichier" />
  </form>

我的控制器动作方法:

public function uploadAction(Request $request)
  {
    $form = $this->createForm(new UploadDocumentForm(), new Document());
    $form->bind($request);
    
    if ($form->isValid())
    {
      [...]
    }
    [...]
  }

我的请求(使用 firebug 调试):

upload_document_form[name]  blablabla
upload_document_form[file]  ID3����TRCK������03/12TIT2[...]
upload_document_form[_token]    bb5f9925002dafbab[...]

我在 symfony 调试工具栏中的请求:

请求 POST 参数

无 POST 参数

如果我做一个:

die(var_dump($request->get($form->getName())));

$request 返回 null。

我已将 /etc/php5/apache/php.ini 的 php.ini 配置为:

file_uploads = 开启

upload_max_filesize = 100M

max_file_uploads = 28

所以,我的表格自然是无效的。最奇怪的是,如果我上传一个小文件(~ 4Mo 以下),POST 数据就在这里,一切正常!

【问题讨论】:

  • post_max_sizeupload_max_filesize 的值是什么?那里还有更多 -> 在“相关”问题中......
  • 与相关问题的良好联系! post_max_size 为 8M ...

标签: php symfony file-upload


【解决方案1】:

ficuscr 评论正确:我需要在我的 php.ini 配置文件中配置 post_max_size

【讨论】:

  • 我为此烦恼不已,但您的回答帮助我找到了解决方案。如果超过最大文件大小,upload_max_filesize 也会导致 POST 不返回任何内容
猜你喜欢
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 2011-07-29
  • 2021-08-12
相关资源
最近更新 更多