/**
  * Metodo para subir un archivo al servidor y guardarlo en el sistema de archivos
  * @param _FILE $file archivo que se esta subiendo
  * @param Attachment $attachment Entidad con toda la informacion de un archivo a guardar
  * @return Array respuesta del proceso de carga de archivo
  */
 public static function uploadAttachment($file, $attachment = null)
 {
     $att = $attachment;
     if (!$att) {
         $att = new Attachment();
     }
     $arr_response = array();
     if ($file) {
         if ($file->isValid()) {
             //esto es para eliminar el archivo anterior para evitar que exista basura en el server
             AttachmentController::deleteFile($att);
             $upload_path = AttachmentController::$RESOURCES_PATH . DIRECTORY_SEPARATOR . date('Y') . DIRECTORY_SEPARATOR . date('m') . DIRECTORY_SEPARATOR . date('d');
             $destination_path = public_path() . DIRECTORY_SEPARATOR . $upload_path;
             $file_name = date("YmdHis") . '_' . Util::cleanString($file->getClientOriginalName());
             //                $file_name = date("YmdHis") . '_' . Util::cleanString($file->getFilename()).$file->getExtension();
             $att->upload_path = $upload_path;
             $att->name = $file_name;
             //se comenta porque se presenta error raro en server VPS de S24
             //get this error: LogicException: Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)
             //http://stackoverflow.com/questions/23065703/laravel-4-no-guessers-available-issue
             //uncomment this line in php.ini into php folder.
             //extension=php_fileinfo.dll
             //                $att->mime = $file->getMimeType();
             $att->size = $file->getSize();
             $file->move($destination_path, $file_name);
             $att->save();
             $arr_response = array('valid' => true, 'file' => $att, 'url_view' => AttachmentController::getAttachmentURL($att->id, 'view', $att->used_for), 'url_download' => AttachmentController::getAttachmentURL($att->id, 'download', $att->used_for));
         } else {
             $arr_response = array('valid' => false, 'error' => array($file->getError(), '**' . $file->getErrorMessage()));
         }
     } else {
         $arr_response = array('valid' => false, 'error' => array($file->getError(), $file->getErrorMessage()));
     }
     return $arr_response;
 }