Add file upload function. modify paramiter FILESYSTEM_DISK=public in file .env
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Requests\FileRequest;
|
||||||
use App\Http\Requests\StorefileRequest;
|
use App\Http\Requests\StorefileRequest;
|
||||||
use App\Http\Requests\UpdatefileRequest;
|
use App\Http\Requests\UpdatefileRequest;
|
||||||
use App\Models\file;
|
use App\Models\file;
|
||||||
@@ -11,7 +12,7 @@ use Illuminate\Support\Facades\Storage;
|
|||||||
|
|
||||||
class FileController extends Controller
|
class FileController extends Controller
|
||||||
{
|
{
|
||||||
public function datasubmit(Request $request): RedirectResponse
|
public function datasubmit(FileRequest $request): RedirectResponse
|
||||||
{
|
{
|
||||||
//upload file in public folder
|
//upload file in public folder
|
||||||
//dd($reqest->all());
|
//dd($reqest->all());
|
||||||
@@ -19,8 +20,14 @@ class FileController extends Controller
|
|||||||
//$request->filename->move(public_path('uploads'), $filename);
|
//$request->filename->move(public_path('uploads'), $filename);
|
||||||
|
|
||||||
//dd($request->all());
|
//dd($request->all());
|
||||||
$filename = 'new_file.'.$request->filename->extension();
|
//$request->validate([
|
||||||
$request->filename->storeAs('file_temp', $filename);
|
// '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');
|
return redirect('/words');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Requests\WordRequest;
|
||||||
use App\Models\Word;
|
use App\Models\Word;
|
||||||
|
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
@@ -18,7 +19,7 @@ class WordsController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Store a new Word in the database.
|
* Store a new Word in the database.
|
||||||
*/
|
*/
|
||||||
public function store(Request $request): RedirectResponse
|
public function store(WordRequest $request): RedirectResponse
|
||||||
{
|
{
|
||||||
$word = new Word;
|
$word = new Word;
|
||||||
$word->name = $request->name;
|
$word->name = $request->name;
|
||||||
@@ -44,7 +45,7 @@ class WordsController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update an existing Word in the database.
|
* 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);
|
$data = Word::find($id);
|
||||||
|
|
||||||
|
|||||||
42
app/Http/Requests/FileRequest.php
Normal file
42
app/Http/Requests/FileRequest.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Validation\Rules\File;
|
||||||
|
|
||||||
|
|
||||||
|
class FileRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public $filetoinsert;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -10,10 +10,19 @@ class WordRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => ['required'],
|
'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
|
public function authorize(): bool
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@props(['messages'])
|
@props(['messages'])
|
||||||
|
|
||||||
@if ($messages)
|
@if ($messages)
|
||||||
<ul {{ $attributes->merge(['class' => 'text-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
|
<ul {{ $attributes->merge(['class' => 'alert alert-danger text-sm text-red-600 dark:text-red-400 space-y-1']) }}>
|
||||||
@foreach ((array) $messages as $message)
|
@foreach ((array) $messages as $message)
|
||||||
<li>{{ $message }}</li>
|
<li>{{ $message }}</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="name" :value="__('Italian Word')" />
|
<x-input-label for="name" :value="__('Italian Word')" />
|
||||||
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" placeholder="Italian Word" required autofocus autocomplete="name"/>
|
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" placeholder="Italian Word" autofocus autocomplete="name"/>
|
||||||
<x-input-error :messages="$errors->get('name')" class="mt-2" />
|
<x-input-error :messages="$errors->get('name')" class="mt-2" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<x-input-label for="translation" :value="__('Dialect Word')" />
|
<x-input-label for="translation" :value="__('Dialect Word')" />
|
||||||
<x-text-input id="translation" name="translation" type="text" class="mt-1 block w-full" placeholder="Dialectic Word" required autofocus autocomplete="translation" />
|
<x-text-input id="translation" name="translation" type="text" class="mt-1 block w-full" placeholder="Dialectic Word" autofocus autocomplete="translation" />
|
||||||
<x-input-error :messages="$errors->get('translation')" class="mt-2" />
|
<x-input-error :messages="$errors->get('translation')" class="mt-2" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
|
|||||||
@@ -12,9 +12,10 @@
|
|||||||
<form action="{{ route('store') }}" method="post" class="mt-6 space-y-6" enctype="multipart/form-data">
|
<form action="{{ route('store') }}" method="post" class="mt-6 space-y-6" enctype="multipart/form-data">
|
||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
<x-text-input type="file" id="filename" name="filename"/>
|
<x-text-input type="file" id="filetoinsert" name="filetoinsert"/>
|
||||||
|
<x-input-error class="mt-2" :messages="$errors->get('filetoinsert')" />
|
||||||
<div class="flex items-center gap-4">
|
<div class="flex items-center gap-4">
|
||||||
<br><br><br><br>
|
<br>
|
||||||
<x-primary-button>{{ __('Submit') }}</x-primary-button>
|
<x-primary-button>{{ __('Submit') }}</x-primary-button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Reference in New Issue
Block a user