Sindbad~EG File Manager
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Models\Documento;
use Livewire\WithPagination;
use Livewire\WithFileUploads;
use Illuminate\Support\Facades\Storage;
use App\File;
class Documentos extends Component{
use WithPagination;
use WithFileUploads;
protected $paginationTheme = 'bootstrap';
public $enlace;
public function render(){
$documentos=Documento::orderBy('id','desc')->paginate(50);
return view('livewire.documentos',["documentos"=>$documentos]);
}
public function store(){
$validatedDate = $this->validate([
'enlace' => 'required',
],
[
'enlace.required' => 'El campo documento es requerido',
]);
if($file = $this->enlace) {
$control=0;
$nombre = $file->getClientOriginalName();
$nombre = str_replace(" ","_",$nombre);
while ($control == 0) {
if (Storage::disk('subidaarchivos')->exists('documentos_varios/' . $nombre)) {
$nombre = rand() . $nombre;
}else{
$this->enlace->storeAs('/documentos_varios',$nombre,'subidaarchivos');
$control=1;
}
}
}
Documento::create([
'enlace' => $nombre,
]);
$this->emit('alert', ['type' => 'success', 'message' => 'Documento agregado correctamente!']);
$this->enlace='';
}
public function delete($id){
$documento = Documento::find($id); // Suponiendo que estás obteniendo el documento por su ID
if ($documento) {
$archivo = 'documentos_varios/' . $documento->enlace;
if (Storage::disk('subidaarchivos')->exists($archivo)) {
// Elimina el archivo del sistema de archivos
Storage::disk('subidaarchivos')->delete($archivo);
}
// Elimina el registro del documento en la base de datos
$documento->delete();
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists