feature/3: upload a file

This commit is contained in:
Simon Vieille 2017-06-19 20:36:51 +02:00
parent 834faedc1f
commit 0f127a0920
4 changed files with 30 additions and 6 deletions

View file

@ -37,9 +37,19 @@ class EditController extends Controller
if ($request->isMethod('post')) {
$form->submit($request);
$data = $form->getData();
if (empty($form->getData()['content']) && empty($request->files)) {
$form->get('content')->addError(new FormError('form.error.not_blank'));
} elseif (empty($form->getData()['content']) && !empty($request->files)) {
if (count($form->get('file')->getErrors()) === 0) {
$data['content'] = file_get_contents($form->get('file')->getData()->getPathName());
unset($data['file']);
}
}
if ($form->isValid()) {
$gist = $app['gist']->create(new Gist(), $form->getData(), $this->getUser());
$gist = $app['gist']->create(new Gist(), $data, $this->getUser());
}
}

View file

@ -32,16 +32,25 @@ class CreateGistForm extends AbstractForm
'content',
'textarea',
array(
'required' => true,
'required' => false,
'attr' => array(
'class' => 'form-control',
'rows' => 10,
),
'trim' => false,
'constraints' => array(
new NotBlank(array(
'message' => $this->translator->trans('form.error.not_blank'),
)),
),
)
);
$this->builder->add(
'file',
'file',
array(
'required' => false,
'attr' => array(
),
'constraints' => array(
),
)
);

View file

@ -4,7 +4,7 @@
{% block body %}
<div class="row">
<form action="{{ path('home') }}" method="post" id="main-form">
<form action="{{ path('home') }}" method="post" id="main-form" enctype="multipart/form-data">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
@ -71,6 +71,10 @@
{{ form_errors(form.content) }}
{{ form_widget(form.content) }}
</p>
<p>
{{ form_errors(form.file) }}
{{ form_widget(form.file) }}
</p>
<p>
<input type="submit" class="btn btn-primary" value="{{ 'form.submit'|trans }}">
</p>

View file

@ -106,6 +106,7 @@
var trans = function(key) {
var translations = {
'form.confirm': '{{ 'form.confirm'|trans }}',
'form.error.not_blank': '{{ 'form.confirm'|trans }}',
};
if (translations.hasOwnProperty(key)) {