title: Send File with POST in Slim Framework
body: <p>I need upload file to service on my REST API with Slim, in my code I used to use:</p>
  
  <pre><code>$_datos = $app-&gt;request;
  </code></pre>
  
  <p>but instead I used:</p>
  
  <pre><code>$_datos-&gt;post('FileInputName');
  </code></pre>
  
  <p>Which didn't assign anything. Please help me!
  Complete code:</p>
  
  <pre><code>$app-&gt;post('/aplicar',function() use($app) {
      try{
          //Code block for capture file and save it ¡Don't Work!
          if(basename($_FILES['_hojaVida']['name']) != null){
              if(!is_dir("./hojas_vida/"))
                  mkdir("./hojas_vida/", 0777);
  
              $dir_subida = './hojas_vida/';
              $fichero_subido = $dir_subida . $POST['_nombre'].'-'.$POST['_apellido'].'-'.str_replace(' ', '-', basename($_FILES['_hojaVida']['name']));
  
              echo '&lt;pre&gt;';
              if (move_uploaded_file($_FILES['_hojaVida']['tmp_name'], $fichero_subido)) {
                  echo "El fichero es válido y se subió con éxito.\n";
              } else {
                  echo "¡Posible ataque de subida de ficheros!\n";
              }
          } //End Code block for capture file and save
  
          $app-&gt;response()-&gt;header("Content-Type", "application/json");
          $_datos = $app-&gt;request;
          $_connection = getConnection();
          $_connection-&gt;beginTransaction();
          $_dbh = $_connection-&gt;prepare(
              "INSERT INTO Aplicable(_id_VAC, Nombre_APL, Apellidos_APL, Curriculum_APL, Creacion_APL) 
              VALUES (:_id_VAC,:Nombre_APL,:Apellidos_APL,:Curriculum_APL,NOW());"
          );
          $_estado = $_dbh-&gt;execute(
              array(
                  ':_id_VAC' =&gt; $_datos-&gt;post('_id_VAC'),
                  ':Nombre_APL' =&gt; $_datos-&gt;post('_nombre'),
                  ':Apellidos_APL' =&gt; $_datos-&gt;post('_apellido'),
                  ':Curriculum_APL' =&gt; str_replace(' ', '-', $_datos-&gt;post('_curriculum'))
              )
          );
  
          if ($_estado){
              $app-&gt;response-&gt;headers-&gt;set("Content-type", "application/json");
              $app-&gt;response-&gt;status(200);
              $app-&gt;response-&gt;body(json_encode(array('estado'=&gt;true,'mensaje'=&gt;'Datos insertados correctamente.', 'Datos'=&gt;var_dump($app-&gt;request))));
  
              $destinatario = $_datos-&gt;post('_correo');
              $asunto = "Subject text" ;
  
              //para el envío en formato HTML 
              $headers = "MIME-Version: 1.0\r\n";
              $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  
              //dirección del remitente 
              $headers .= "From: name &lt;info@domain.com&gt;\r\n";
  
              //dirección de respuesta, si queremos que sea distinta que la del remitente 
              //$headers .= "Reply-To: mailto@domain.com\r\n"; 
  
              //ruta del mensaje desde origen a destino 
              $headers .= "Return-path: mail3@domain.com.co\r\n";
  
              //direcciones que recibián copia 
              $headers .= "Cc: copymail@domain.com\r\n";
  
              //direcciones que recibirán copia oculta 
              $headers .= "Bcc: mail1@domain.co,mail2@domain.co\r\n";
  
              mail($destinatario,$asunto,$cuerpo,$headers);
          }
          $_connection-&gt;commit();
          $_connection = null;
  
      }catch(PDOException $e){
          $app-&gt;response-&gt;status(500);
          echo "Error: Insertando persona: " . $e-&gt;getMessage();
      }
  });
  </code></pre>