Aplicación para subida de archivos en Laravel con base de datos
Tabla upload
.
<?php
Schema::create('upload', function (Blueprint $table) {
$table->id();
$table->string('original_name');
$table->string('storage_name')->unique();
$table->timestamps();
});
Los archivos se van a guardar en el directorio storage/app/private/exercise/
.
<?php
Route::get('/', [UploadController::class, 'index'])->name('upload.index');
Route::get('/create', [UploadController::class, 'create'])->name('upload.create');
Route::post('/upload', [UploadController::class, 'store'])->name('upload.store');
Route::get('image/{id}', [UploadController::class, 'image'])->name('upload.image');
Route::get('show/{file}', [UploadController::class, 'show'])->name('upload.show');
Route::delete('delete/{id}', [UploadController::class, 'destroy'])->name('upload.destroy');
base.blade.php
: Main layout templateupload/create.blade.php
: Formulario de subidaupload/index.blade.php
: Lista de archivos subidosupload/show.blade.php
: Vista individual
El controlador UploadController se encarga de todas las operaciones:
index()
: Muestrar todos los archivos o redirige a la creación si no hay ninguna entradacreate()
: Mostrar el formulario de subidastore()
: Manejar la carga de archivosshow()
: Muestrar un archivo individualimage()
: Muestrar un archivo individualdestroy()
: Eliminar archivo
Los archivos y entradas de la base de datos se eliminan mediante public/assets/scripts/script.js
.
Tiene las siguientes funcionalidades:
- Captura los click events en los enlaces delete.
- Muestra el cuadro de diálogo de confirmación.
Página principal:
Página de subida de archivos:
Página de visionado de imagen:
Borrado de archivo y entrada a la base de datos: