File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/CadastroDeAmbulantes/FotosController.php
Back
<?php namespace App\Http\Controllers\CadastroDeAmbulantes; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use App\Http\Requests\CadastroDeAmbulantes\FotosRequest; use App\Models\CadastroDeAmbulantes\Ambulante; use App\Models\Arquivo; use App\Helpers\FileUploadHelper; class FotosController extends Controller { public function index(Ambulante $ambulante) { return view('admin.cadastroDeAmbulantes.ambulantes.forms', [ "paises" => $this->__paises(), "ocupacoes" => $this->__ocupacoes(), "ambulante" => $ambulante, "proprietario" => $ambulante->proprietario, "arquivos" => $ambulante->arquivos ?? [], ]); } public function store(FotosRequest $request, Ambulante $ambulante) { 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" => $ambulante->id, "nome" => FileUploadHelper::sanitizeOriginalFileName($file), "tipo" => "Imagem", "link" => $path, ]); } } DB::commit(); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.fotosIndex', $ambulante->id) ->with('success', 'Imagens cadastrada com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar imagem: ' . $e->getMessage()); } } else { return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar cadastrar imagem: ' . $e->getMessage()); } } public function destroy(Request $request, Ambulante $ambulante, 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(); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.fotosIndex', $ambulante->id) ->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 esta imagem. ' . $e->getMessage()); } } public function status(Request $request, Ambulante $ambulante, Arquivo $arquivo) { try { DB::beginTransaction(); $arquivo->fill([ 'status' => $request->checkStatus ]); $arquivo->save(); DB::commit(); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.fotosIndex', $ambulante->id) ->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