2013-03-26 40 views
1

我创建了一个上传文件的表单,但是出现了一个非常奇怪的错误... 当我上传文件时,symfony看不到POST参数。上传文件时没有POST参数

我Form类:

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()) 
    { 
     [...] 
    } 
    [...] 
    } 

我的请求(调试与萤火虫):

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()))); 

$请求返回NULL。

我已经配置了我的/etc/php5/apache/php.ini的php.ini中有:

file_uploads =在

的upload_max_filesize = 100M

max_file_uploads = 28

因此,自然,我的表单无效。最奇怪的是,如果我上传一个小文件(〜4Mo下),POST数据在这里,并且一切正常!

+2

“post_max_size”和“upload_max_filesize”的值是什么?很多在那里 - >在“相关”的问题... – ficuscr 2013-03-26 19:22:44

+0

很好的连接和相关的问题! post_max_size是8M ... – bux 2013-03-26 19:38:09

回答

2

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

+0

拉过我的头发,但你的回答帮我找到了解决办法。如果超过最大文件大小,upload_max_filesize也会导致POST不返回任何内容 – AaronP 2016-03-02 03:53:06