我尝试使用没有实体类的表单上传文件。到目前为止没有运气。
// Controller
public function uploadAction() {
$request = $this->getRequest();
$form = $this->createFormBuilder()
->add('images', 'file') // If I remove this line data is submitted correctly
->add('dir', 'text')
->getForm();
if ($request->getMethod() == 'POST') {
$request = $this->getRequest();
$form->bindRequest($request);
$data = $form->getData();
var_dump($data);
}
else
return $this->render('OverseerMainBundle:Default:form.html.twig', array(
'form' => $form->createView(),
));
}
// form.html.twig
{% block body %}
<form action="{{ path('OverseerMainBundle_upload') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
{% endblock %}
到目前为止var_dump回声:
array(2) { ["images"]=> NULL ["dir"]=> NULL }
但是,如果我删除行->add('images', 'file')
,一切正常:
array(1) { ["dir"]=> string(4) "test" }
P.S。我检查了表单的html代码,并显示了属性enctype="multipart/form-data"
。所以这不是问题。
答案 0 :(得分:4)
我希望这会有助于其他人:
if ($form->isValid()) {
$file = $form->get('file')->getData();
$name = $file->getClientOriginalName();
$dir = __DIR__.'/../../../../web/uploads';
$file->move($dir, $name) ;
}
答案 1 :(得分:2)
您是否检查过该文件是否超出服务器最大文件大小限制?默认值为2MB。我还没有使用Symfony 2.0,所以我不确定。