From bf232ef382aa92f1438c52121bc17381bb6d9fdf Mon Sep 17 00:00:00 2001 From: aslan Date: Wed, 31 Jan 2024 08:47:05 +0300 Subject: [PATCH] add file download with hashed name --- app/Http/Controllers/FileController.php | 19 +++++++++++-------- app/Models/File.php | 3 ++- .../2024_01_22_074748_create_files_table.php | 1 + .../views/menu/reception-screen.blade.php | 2 +- routes/web.php | 1 + 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php index fbae102..25e4deb 100644 --- a/app/Http/Controllers/FileController.php +++ b/app/Http/Controllers/FileController.php @@ -44,23 +44,26 @@ class FileController extends Controller { abort_if(Auth::guest(), 403); - $content = $request->file('url'); - WorkWithFiles::saveFileToUploads($content); - $newPath = WorkWithFiles::renameFile($content); - - $url = $request->file('file'); - $return = Storage::put('file.jpg', $content); - dd($return); + $nameFile = $request->file('url')->getClientOriginalName(); + $name = Storage::put('public', $request->file('url')); $validated = $request->validated(); $file = new File(); $file->name = $validated['name']; - $file->url = $newPath; + $file->file_name = $nameFile; + $file->url = Storage::url($name); $file->position = $validated['position']; $file->reception_screen_id = $validated['idReceptionScreen']; $file->save(); + return redirect()->route('files.index'); } + + public function download($id) + { + $file = (new File())->find($id); + return Storage::url($file->url); + } public function edit(int $idFile) { abort_if(Auth::guest(), 403); diff --git a/app/Models/File.php b/app/Models/File.php index 9d1074d..bd9c20b 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -13,8 +13,9 @@ class File extends Model protected $fillable = [ 'id', 'name', + 'file_name', 'url', - 'description' + 'description', ]; public function receptionScreen(): BelongsTo diff --git a/database/migrations/2024_01_22_074748_create_files_table.php b/database/migrations/2024_01_22_074748_create_files_table.php index 4656e1f..b09f80f 100644 --- a/database/migrations/2024_01_22_074748_create_files_table.php +++ b/database/migrations/2024_01_22_074748_create_files_table.php @@ -14,6 +14,7 @@ return new class extends Migration Schema::create('files', function (Blueprint $table) { $table->id(); $table->string('name'); + $table->string('file_name'); $table->string('description')->nullable(); $table->string('url'); $table->integer('position'); diff --git a/resources/views/menu/reception-screen.blade.php b/resources/views/menu/reception-screen.blade.php index 22e524f..385f710 100644 --- a/resources/views/menu/reception-screen.blade.php +++ b/resources/views/menu/reception-screen.blade.php @@ -28,7 +28,7 @@ @foreach($receptionScreen->files as $file)
- {{ $file->name }} + {{ $file->name }}
@endforeach @endforeach diff --git a/routes/web.php b/routes/web.php index 69b021a..290e74b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -30,6 +30,7 @@ Route::get('/files/create/{file?}', [FileController::class, 'create'])->name('fi Route::patch('/files/{file}', [FileController::class, 'update'])->name('files.update'); Route::delete('files/{file}', [FileController::class, 'destroy'])->name('files.destroy'); Route::get('/files/edit/{file}', [FileController::class, 'edit'])->name('files.edit'); +Route::get('/files/download/{file}', [FileController::class, 'download'])->name('files.download'); Route::get('/course', function () { return view('menu.course');