title: Validation for file upload doesn't work in Laravel 5.0
body: <p>In laravel 5.0 I'm doing a test to upload a file and I want to the extension would be limited to pdf, doc or docx and a size of max 5MB. In my form I have two inputs of type date and the input type  file. If i don't put any file I See the error. But if i upload a type or file distinct of pdf, doc or docx or more than 5MB the page is reload and I don't see any error but in log I see this: </p>
  
  <pre><code>[2017-07-19 12:53:11] local.ERROR: exception 'Exception' with message 'Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed' in /var/www/html/seguridadehigiene/vendor/laravel/framework/src/Illuminate/Session/Store.php:255
  Stack trace:
  #0 /var/www/html/seguridadehigiene/vendor/laravel/framework/src/Illuminate/Session/Store.php(255): serialize(Array)
  #1 /var/www/html/seguridadehigiene/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(89): Illuminate\Session\Store-&gt;save()
  #2 /var/www/html/seguridadehigiene/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(135): Illuminate\Session\Middleware\StartSession-&gt;terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\RedirectResponse))
  #3 /var/www/html/seguridadehigiene/public/index.php(57): Illuminate\Foundation\Http\Kernel-&gt;terminate(Object(Illuminate\Http\Request), Object(Illuminate\Http\RedirectResponse))
  #4 /var/www/html/seguridadehigiene/server.php(21): require_once('/var/www/html/s...')
  #5 {main}  
  </code></pre>
  
  <p>This is my blade template:</p>
  
  <pre><code>@extends('pages.client.main')
  
  @section('title')
      Crear una Evaluación Ergonómica
  @stop
  
  @section('content')
      &lt;ol class="breadcrumb"&gt;
          &lt;li class="active"&gt;Del Trabajador&lt;/li&gt;
          &lt;li class="active"&gt;Ergonomía&lt;/li&gt;
          &lt;li&gt;&lt;a href="{{url('ergonomicsEstablishments')}}"&gt;Evaluaciones Ergonómicas&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;&lt;a href="{{url('ergonomicsEstablishments/'.$establishmentId.'/ergonomicsPosts')}}"&gt;Puestos por Establecimiento&lt;/a&gt;&lt;/li&gt;
          &lt;li class="active"&gt;Cargar planilla de Evaluación Ergonómica&lt;/li&gt;
      &lt;/ol&gt;
      &lt;div class="row"&gt;
          &lt;div class="col-md-12"&gt;
              &lt;div class="panel panel-default"&gt;
                  &lt;div class="panel-heading"&gt;
                      &lt;h3 class="panel-title"&gt;Cargar una Evaluación Ergonómica&lt;/h3&gt;
                  &lt;/div&gt;
                  @include('errors.list')
                  {!! Form::open(['files' =&gt; 'true', 'url' =&gt; 'ergonomicsEstablishments/'.$establishmentId.'/ergonomicsPosts/'.$postId.'/ergonomics', 'onsubmit' =&gt; "return confirm('¿Confirma GRABAR los datos ingresados?');"]) !!}
                  &lt;div class="panel-body"&gt;
  
      &lt;div class="form-group"&gt;
          {!! Form::label('puesto', 'Puesto: '.$postName) !!}
      &lt;/div&gt;
  
      &lt;div class="form-group"&gt;
          {!! Form::label('fecha_evaluacion', 'Fecha de Evaluacion:', ['class' =&gt; 'required']) !!}
          {!! Form::input('date', 'fecha_evaluacion', null, ['class' =&gt; 'form-control', 'autofocus' =&gt; 'autofocus'] ) !!}
  
      &lt;/div&gt;
  
      &lt;div class="form-group"&gt;
          {!! Form::label('fecha_renovacion', 'Fecha de Renovación:', ['class' =&gt; 'required']) !!}
          {!! Form::input('date', 'fecha_renovacion', null, ['class' =&gt; 'form-control']) !!}
      &lt;/div&gt;
  
      &lt;div class="form-group"&gt;
          {!! Form::label('evaluacion', 'Planilla 1-IDENTIFICACIÓN DE FACTORES DE RIESGOS:', ['class' =&gt; 'required']) !!}
          {!! Form::file('evaluacion', ['class' =&gt; 'form-control']) !!}
      &lt;/div&gt;
  
  
      &lt;div class="form-group"&gt;
          {!! Form::submit($buttonText, ['class' =&gt; 'btn btn-success ' ] ) !!}
          &lt;a href="{{url('ergonomicsEstablishments/'.$establishmentId.'/ergonomicsPosts/'.$postId.'/ergonomics')}}" class="btn btn-primary btn-m"&gt;
              Cancelar
          &lt;/a&gt;
      &lt;/div&gt;
  &lt;/div&gt;
  
   ['buttonText' =&gt; 'Grabar', $establishmentId, $postId])
                  {!! Form::close() !!}
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  @stop
  </code></pre>
  
  <p>This is the store in my controller:</p>
  
  <pre><code>public function store(Request $request)
      {
          $sector = Sector::findOrFail($this-&gt;post-&gt;id_sector);
          $establishmentId = $this-&gt;establishment-&gt;id;
          $postId = $this-&gt;post-&gt;id;
          $sectorName = str_replace("/","$",$sector-&gt;descripcion);
          $post = $this-&gt;post;
          $postName = str_replace("/","$",$post-&gt;identificacion);
  
          $now = Date::toValid(Carbon::now());
  
          $data = $request-&gt;all();
  
          if ($data['fecha_renovacion'] == "") {
              unset($data['fecha_renovacion']);
          }
  
          if ($data['fecha_evaluacion'] == "") {
              unset($data['fecha_evaluacion']);
          }
  
          $validator = $this-&gt;validateFormErgonomic($data);
          $evaluationDate = Date::toValid($data['fecha_evaluacion']);
          //selecciono la planilla 1
          $sheetName = Planilla886::findOrFail('1')-&gt;denominacion;
  
          $dataErgonomic = [];
          $dataErgonomic['id_cliente'] = ClientAuth::clientId();
          $dataErgonomic['id_puesto'] = $post-&gt;id;
          $dataErgonomic['fecha_evaluacion'] = $evaluationDate;
          $dataErgonomic['fecha_renovacion'] = Date::toValid($data['fecha_renovacion']);
  
          if ($request-&gt;hasFile('evaluacion')) {
              //if ($request-&gt;file('evaluacion')-&gt;isValid()) {
                  $evaluacionFileName = ClientAuth::clientId() . '-evaluacion_ergonomica-'.$sectorName.'-'.$postName.'-'. $data['fecha_evaluacion'].'-'.$sheetName.'-'.$request-&gt;file('evaluacion')-&gt;getClientOriginalName();
                  $dir = File::clientPath('ergonomia/evaluaciones_ergonomicas');
  
                  $request-&gt;file('evaluacion')-&gt;move($dir, $evaluacionFileName);
                  $data['evaluacion'] = $dir . $evaluacionFileName;
              /*}
              else{
                  Session::flash('error', 'Tipo de archivo incorrecto');
              }*/
          }
  
         $ergonomic = Ergonomia::create($dataErgonomic);
  
         $idSheet = Planilla886::where('planilla_codigo', '=', Constants::CODIGO_PLANILLA1)-&gt;first()-&gt;id;
         DetalleErgonomia::create([
              'id_ergonomia' =&gt; $ergonomic-&gt;id,
              'id_planillas_886' =&gt; $idSheet,
              'evaluacion' =&gt; $data['evaluacion'],
              'fecha_planilla' =&gt; $evaluationDate
          ]);
          Session::flash('mensaje', 'Evaluación Ergonómica creada con exito');
          return redirect('/ergonomicsEstablishments/'.$establishmentId.'/ergonomicsPosts/'.$postId.'/ergonomics');
      }
  </code></pre>
  
  <p>And this is my validation:</p>
  
  <pre><code>public function validateFormErgonomic($data) {
          $rules = array(
                  'fecha_evaluacion' =&gt; 'required',
                  'fecha_renovacion' =&gt; 'required',
                  'evaluacion'       =&gt; 'mimes:pdf,doc,docx|required|max:5192'
          );
  
          $niceNames = array(
                  'fecha_evaluacion' =&gt; 'Fecha de Evaluación',
                  'fecha_renovacion' =&gt; 'Fecha de Renovación',
                  'evaluacion'       =&gt; 'Planilla 1-IDENTIFICACIÓN DE FACTORES DE RIESGOS'
          );
  
          $validator = Validator::make($data, $rules);
  
          $validator-&gt;setAttributeNames($niceNames);
          $validator-&gt;after(function ($validator) {
              $data = $validator-&gt;getData();
              if (isset($data['fecha_evaluacion']) &amp;&amp; Date::isFuture($data['fecha_evaluacion'])) {
                  $validator-&gt;errors()-&gt;add('fecha_evaluacion', 'La Fecha de Evaluación no puede ser futura');
              }
              if (isset($data['fecha_renovacion']) &amp;&amp; Date::isPast($data['fecha_renovacion'])) {
                  $validator-&gt;errors()-&gt;add('fecha_renovacion', 'La Fecha de Renovación no puede ser pasada');
              }
  
          });
  
          return $validator;
      }
  </code></pre>
  
  <p>Any ideas??. Regards!!</p>