File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/Comunicacao/BoletinsController.php
Back
<?php namespace App\Http\Controllers\Comunicacao; use App\Http\Controllers\Controller; use App\Models\Comunicacao\Boletim; use Illuminate\Http\Request; use App\Http\Requests\Comunicacao\BoletimRequest; use Spatie\PdfToText\Pdf; use App\Http\Services\Comunicacao\BoletimService; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; use App\Helpers\FileUploadHelper; class BoletinsController extends Controller { private $permissao = "GERENCIADOR_DE_BOLETINS"; public function index(Request $request): View|LengthAwarePaginator|RedirectResponse { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } $BoletimService = new BoletimService(); $boletins = $BoletimService->index($request); $totalBoletins = Boletim::count(); return view("admin.boletins.index", [ "boletins" => $boletins, "totalBoletins" => $totalBoletins ]); } public function create(): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } return view("admin.boletins.create"); } public function store(BoletimRequest $request): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } $validated = $request->validated(); $ds = DIRECTORY_SEPARATOR; $path = ""; if ($request->hasFile('url') && $request->file('url')->isValid()) { $file = $request->file('url'); $fileSizeKB = ceil($file->getSize() / 1024); $uploadedPath = FileUploadHelper::processSafeDocumentUpload($file, 'boletins'); if ($uploadedPath) { // Ajusta o caminho para files em vez de img $path = str_replace("pmar{$ds}assets{$ds}img", "pmar{$ds}assets{$ds}files", $uploadedPath); $fileName = basename($path); $validated['url'] = "storage/boletins/{$fileName}"; } else { return redirect() ->back() ->withInput() ->with('error', 'Erro ao fazer upload do arquivo.'); } } $array_boletim = [ 'publicationDate' => $request->publicationDate, 'month' => $request->month, 'number' => $request->number, 'title' => $request->title, 'url' => $path, 'fileSizeKB' => $fileSizeKB, 'fileName' => $fileName, 'extraordinaryEdition' => $request->extraordinaryEdition, 'indexado' => 0, 'status' => $request->status, ]; $BoletimService = new BoletimService(); return $BoletimService->store($request, $array_boletim); } public function edit(Boletim $boletim): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } if (!$boletim) { return redirect("/admin/boletins") ->with("error", __("Boletim não encontrado.")); } return view('admin.boletins.edit', ['boletim' => $boletim]); } public function update(BoletimRequest $request, Boletim $boletim): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } if (!$boletim) { return redirect("/admin/boletins") ->with("error", __("Boletim não encontrado.")); } $validated = $request->validated(); $ds = DIRECTORY_SEPARATOR; $array_boletim = [ 'publicationDate' => $request->publicationDate, 'month' => $request->month, 'number' => $request->number, 'title' => $request->title, 'extraordinaryEdition' => $request->extraordinaryEdition, 'status' => $request->status, ]; if ($request->hasFile('url') && $request->file('url')->isValid()) { $search = "pmar{$ds}assets{$ds}files"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $boletim->url); if (file_exists($file_exist)) { unlink($file_exist); } $file = $request->file('url'); $fileSizeKB = ceil($file->getSize() / 1024); $uploadedPath = FileUploadHelper::processSafeDocumentUpload($file, 'boletins'); if ($uploadedPath) { // Ajusta o caminho para files em vez de img $path = str_replace("pmar{$ds}assets{$ds}img", "pmar{$ds}assets{$ds}files", $uploadedPath); $fileName = basename($path); $validated['url'] = "storage/boletins/{$fileName}"; $array_boletim['url'] = "pmar/assets/files/boletins/" . $fileName; $array_boletim['fileSizeKB'] = $fileSizeKB; $array_boletim['fileName'] = $fileName; $array_boletim['indexado'] = 0; } } $BoletimService = new BoletimService(); return $BoletimService->update($request, $boletim, $array_boletim); } public function destroy(Request $request, Boletim $boletim): RedirectResponse { $response = $this->checkPermissao($this->permissao, "excluir"); if ($response instanceof RedirectResponse) { return $response; } if ($boletim->url != "") { $ds = DIRECTORY_SEPARATOR; $search = "pmar{$ds}assets{$ds}files"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $boletim->url); if (file_exists($file_exist)) { unlink($file_exist); } } $BoletimService = new BoletimService(); return $BoletimService->destroy($request, $boletim); } public function status(Request $request, Boletim $boletim): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } $BoletimService = new BoletimService(); return $BoletimService->status($request, $boletim); } public function indexacao(Request $request, Boletim $boletim): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } $ds = DIRECTORY_SEPARATOR; $search = "pmar{$ds}assets{$ds}files"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $boletim->url); $text = ""; if (file_exists($file_exist)) { try { $text = Pdf::getText($file_exist); } catch (\Exception $e) { abort(500, $e->getMessage()); return dd($e->getMessage()); } } $array_boletim = ['description' => $text, 'indexado' => 1,]; $BoletimService = new BoletimService(); return $BoletimService->indexacao($request, $boletim, $array_boletim); } public function boletins_dados() { $boletins = Boletim::all(); return response()->json($boletins, 200); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings