File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/ArquivosParquesJardinsController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Arquivo; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use App\Models\Parque; use Illuminate\Http\Request; use App\Http\Requests\ArquivosParquesJardinsRequest; use Spatie\PdfToText\Pdf; use App\Helpers\FileUploadHelper; class ArquivosParquesJardinsController extends Controller { public function __construct() { $this->middleware('parques'); } public function index(Request $request, Parque $parque) { $arquivos = $parque->arquivos() ->orderBy('tipo', 'asc') ->orderBy('evento_at', 'desc') ->paginate(20); return view("admin.parquesJardins.arquivos.index", [ "parque" => $parque, "arquivos" => $arquivos ]); } public function create(Parque $parque) { return view("admin.parquesJardins.arquivos.create", [ "parque" => $parque ]); } public function store(ArquivosParquesJardinsRequest $request, Parque $parque) { if ($request->hasFile('link')) { $ds = DIRECTORY_SEPARATOR; try { DB::beginTransaction(); foreach ($request->file('link') as $file) { if ($file->isValid()) { $path = "pmar/assets/img/icons/neutro.png"; // Valida e processa upload seguro $uploadedPath = FileUploadHelper::processSafeImageUpload($file, 'arquivos'); if ($uploadedPath) { $path = $uploadedPath; } else { // Se validação falhar, pula este arquivo continue; } Arquivo::create([ "user_id" => Auth::user()->id, "owner_id" => $parque->id, "nome" => FileUploadHelper::sanitizeOriginalFileName($file), "tipo" => "Imagem", "link" => $path, ]); } } DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins/{$parque->id}/arquivos?page={$page}")->with("success", __("* Arquivo criado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar um arquivo. ' . $e->getMessage()); } } else { return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar um arquivo.'); } } public function destroy(Request $request, Parque $parque, Arquivo $arquivo) { if (!in_array("DELETE", explode(",", Auth::user()->papers))) { return redirect() ->back() ->withInput() ->with('error', 'Permissão negada! Entre em contato com o administrador do sistema.'); } $ds = DIRECTORY_SEPARATOR; if ($arquivo->link != "pmar/assets/img/icons/neutro.png") { $search = "pmar{$ds}assets{$ds}img"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $arquivo->link); if (@file_exists($file_exist)) { unlink($file_exist); } } try { DB::beginTransaction(); Arquivo::destroy($arquivo->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins/{$parque->id}/arquivos?page={$page}")->with("success", __("* A imagem foi excluída com sucesso! Esta ação não pode ser desfeita!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar excluir este arquivo. ' . $e->getMessage()); } } public function status(Request $request, Parque $parque, Arquivo $arquivo) { try { DB::beginTransaction(); $arquivo->fill([ 'status' => $request->checkStatus ]); $arquivo->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins/{$parque->id}/arquivos?page={$page}")->with("success", __("* O status desta imagem foi alterada com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar alterar o status desta imagem. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings