From 58a28884c4f82cc068b7cb4f023656cb55e9cdd7 Mon Sep 17 00:00:00 2001 From: paoloGuagnano Date: Tue, 13 Feb 2024 18:44:12 +0100 Subject: [PATCH] Add file upload function. modify paramiter FILESYSTEM_DISK=public in file .env --- app/Http/Controllers/FileController.php | 13 ++++-- app/Http/Controllers/WordsController.php | 5 ++- app/Http/Requests/FileRequest.php | 42 +++++++++++++++++++ app/Http/Requests/WordRequest.php | 11 ++++- .../views/components/input-error.blade.php | 2 +- .../words/partials/insert-word-form.blade.php | 4 +- .../words/partials/upload-file.blade.php | 5 ++- 7 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 app/Http/Requests/FileRequest.php diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php index f573f3a..49b37ce 100644 --- a/app/Http/Controllers/FileController.php +++ b/app/Http/Controllers/FileController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\FileRequest; use App\Http\Requests\StorefileRequest; use App\Http\Requests\UpdatefileRequest; use App\Models\file; @@ -11,7 +12,7 @@ use Illuminate\Support\Facades\Storage; class FileController extends Controller { - public function datasubmit(Request $request): RedirectResponse + public function datasubmit(FileRequest $request): RedirectResponse { //upload file in public folder //dd($reqest->all()); @@ -19,8 +20,14 @@ class FileController extends Controller //$request->filename->move(public_path('uploads'), $filename); //dd($request->all()); - $filename = 'new_file.'.$request->filename->extension(); - $request->filename->storeAs('file_temp', $filename); + //$request->validate([ + // 'filename'=>'required' + //]); + + $filename = 'new_file.'.$request->file("filetoinsert")->getClientOriginalExtension(); + $request->file("filetoinsert")->storeAs('file_temp', $filename); + + //$request->filename->storeAs('file_temp', $filename); return redirect('/words'); } diff --git a/app/Http/Controllers/WordsController.php b/app/Http/Controllers/WordsController.php index 0f082f2..35a89d4 100644 --- a/app/Http/Controllers/WordsController.php +++ b/app/Http/Controllers/WordsController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\WordRequest; use App\Models\Word; use Illuminate\Http\RedirectResponse; @@ -18,7 +19,7 @@ class WordsController extends Controller /** * Store a new Word in the database. */ - public function store(Request $request): RedirectResponse + public function store(WordRequest $request): RedirectResponse { $word = new Word; $word->name = $request->name; @@ -44,7 +45,7 @@ class WordsController extends Controller /** * Update an existing Word in the database. */ - public function update(Request $request, $id): RedirectResponse + public function update(WordRequest $request, $id): RedirectResponse { $data = Word::find($id); diff --git a/app/Http/Requests/FileRequest.php b/app/Http/Requests/FileRequest.php new file mode 100644 index 0000000..8fec1d9 --- /dev/null +++ b/app/Http/Requests/FileRequest.php @@ -0,0 +1,42 @@ +|string> + */ + public function rules(): array + { + return [ + 'filetoinsert' => ['required', 'mimes:txt']//, File::types(['csv'])] + ]; + } + + public function messages(): array + { + return [ + 'filetoinsert.required' => 'ERROR: csv file not selected!', + 'filetoinsert.mimes'=> "ERRORE: select only csv format" + ]; + } + + /** + * Determine if the user is authorized to make this request. + */ + public function authorize(): bool + { + return true; + } +} + + diff --git a/app/Http/Requests/WordRequest.php b/app/Http/Requests/WordRequest.php index 53751cd..de4c6c0 100644 --- a/app/Http/Requests/WordRequest.php +++ b/app/Http/Requests/WordRequest.php @@ -10,10 +10,19 @@ class WordRequest extends FormRequest { return [ 'name' => ['required'], - 'translation' => ['required'], + 'translation' => ['required', 'unique:words,translation'], ]; } + public function messages(): array + { + return [ + 'name.required' => 'Insert italian Word', + 'translation.required' => 'Insert dialect Word', + ]; + } + + public function authorize(): bool { return true; diff --git a/resources/views/components/input-error.blade.php b/resources/views/components/input-error.blade.php index a8a816b..84caf1c 100644 --- a/resources/views/components/input-error.blade.php +++ b/resources/views/components/input-error.blade.php @@ -1,7 +1,7 @@ @props(['messages']) @if ($messages) -