public static function agregar($info) { $respuesta = array(); $rules = array('archivo' => array('mimes:pdf')); $validator = Validator::make($info, $rules); if ($validator->fails()) { //return Response::make($validator->errors->first(), 400); //Si está todo mal, carga lo que corresponde en el mensaje. $respuesta['mensaje'] = $validator; $respuesta['error'] = 'no pasa'; } else { $file = $info['archivo']; $count = count($file->getClientOriginalName()) - 4; $nombreArchivo = Str::limit(Str::slug($file->getClientOriginalName()), $count, ""); $extension = $file->getClientOriginalExtension(); //if you need extension of the file //$extension = File::extension($file['name']); $carpeta = '/uploads/archivos/'; $directory = public_path() . $carpeta; //$filename = sha1(time() . Hash::make($filename) . time()) . ".{$extension}"; //Pregunto para que no se repita el nombre de la imagen if (!is_null(Archivo::archivoPorNombre($nombreArchivo . ".{$extension}"))) { $filename = $nombreArchivo . "(" . Str::limit(sha1(time()), 3, "") . ")" . ".{$extension}"; } else { $filename = $nombreArchivo . ".{$extension}"; } //$upload_success = $file->move($directory, $filename); if ($file->move($directory, $filename)) { $datos = array('nombre' => $filename, 'titulo' => $nombreArchivo . ".{$extension}", 'carpeta' => $carpeta, 'tipo' => "{$extension}", 'estado' => 'A', 'fecha_carga' => date("Y-m-d H:i:s"), 'usuario_id_carga' => Auth::user()->id); $archivo = static::create($datos); //Mensaje correspondiente a la agregacion exitosa $respuesta['mensaje'] = 'Archivo creado.'; $respuesta['error'] = false; $respuesta['data'] = $archivo; //return Response::json('success', 200); } else { //Mensaje correspondiente a la agregacion exitosa $respuesta['mensaje'] = 'Archivo erróneo.'; $respuesta['error'] = true; $respuesta['data'] = null; //return Response::json('error', 400); } } return $respuesta; }