function __construct($url) { $this->name = Util::fileExtractName($url); $this->extension = strtolower(Util::fileExtractExtension($url)); $this->path = Util::convertUrltoPath($url); $this->route = str_replace($this->name . "." . $this->extension, "", $this->path); $this->route_url = str_replace($this->name . "." . $this->extension, "", $url); /** * La function mime_content_type esta obsoleta */ //$this->mime_type = mime_content_type($this->path); $this->mime_type = null; $dimensiones = getimagesize($this->path); $this->width = $dimensiones[0]; $this->height = $dimensiones[1]; }
/** Recibe una peticion Ajax para actualiza la foto de perfil de un usuario * * @param Request $request * @return type */ function ajaxUpdateAvatar(Request $request) { if (!$request->ajax() || !Auth::check()) { return json_encode(array()); } $extensions = array("png", "jpg", "jpeg"); $avatar = $request->file("upload-avatar"); $extension = strtolower($avatar->getClientOriginalExtension()); //Valida la extension del archivo if (!in_array($extension, $extensions)) { return json_encode(array("error" => "Extension de archivo no permitida")); } //Valida el tamaño del archivo if ($avatar->getSize() > 2000000) { return json_encode(array("error" => "Tamaño del archivo excesivo")); } //Almacena la imagen subida por el usuario en la carpeta temporal $filename = DateUtil::getTimeStamp() . "." . $extension; $temp = Auth::user()->getPathTemporal(); $avatar->move($temp, $filename); //Crear carpeta de usuario predeterminada $image = new Image(url($temp . $filename)); $url_avatar = $image->createCopy(200, 200, DateUtil::getTimeStamp(), public_path(Auth::user()->getPathUploads()), false); //Elimina el archivo temporal unlink(Util::convertUrltoPath(url($temp . $filename))); //Registra el nuevo avatar en la base de datos $user = User::findOrNew(Auth::user()->id); //Si el usuario tiene definido un avatar, lo elimina if (!is_null($user->avatar)) { unlink(Util::convertUrltoPath($user->avatar)); } $user->avatar = $url_avatar; $user->save(); return json_encode(array("url" => $url_avatar)); }