コード例 #1
0
 /** 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));
 }
コード例 #2
0
 function postReportProblem(Request $request)
 {
     $extensions = array("png", "jpg", "jpeg");
     $data = $request->all();
     if (!isset($data[Report::ATTR_TYPE]) || !isset($data[Report::ATTR_DESCRIPTION])) {
         return redirect()->back();
     }
     $report = new Report();
     $report->user_id = Auth::user()->id;
     $report->type = $data[Report::ATTR_TYPE];
     $report->date = DateUtil::getCurrentTime();
     $report->description = Util::trimText(strip_tags($data[Report::ATTR_DESCRIPTION]), 500);
     $report->image = null;
     if ($request->hasFile(Report::ATTR_IMAGE)) {
         $image = $request->file(Report::ATTR_IMAGE);
         $extension = strtolower($image->getClientOriginalExtension());
         //Valida la extension del archivo
         if (!in_array($extension, $extensions)) {
             return redirect()->back()->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Extension de archivo no permitida, no es una imagen valida."));
         }
         //Valida el tamaño del archivo
         if ($image->getSize() > 2000000) {
             return redirect()->back()->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Tamaño del archivo excesivo. Maximo 2MB"));
         }
         //Almacena la imagen subida por el usuario en la carpeta temporal
         $filename = DateUtil::getTimeStamp() . "." . $extension;
         $image->move(Auth::user()->getPathUploads(), $filename);
         $report->image = url(Auth::user()->getPathUploads() . $filename);
     }
     $report->save();
     return redirect("browser")->with(UI::modalMessage("¡Gracias por tu reporte!", "Tus comentarios acerca de tu experencia ayudan a mejorar la plataforma de Bandicot. Nos pondremos en contacto contigo por correo electrónico si necesitamos saber más detalles del problema.", "Cerrar"));
 }