This snippet shows a clean controller method for handling file uploads with full validation.
// routes/web.php
Route::post('/upload', [UploadController::class, 'store'])->name('upload.store');
// app/Http/Requests/UploadFileRequest.php
class UploadFileRequest extends FormRequest
{
public function rules(): array
{
return [
'file' => ['required', 'file', 'max:10240', 'mimes:pdf,jpg,png,zip'],
];
}
}
// app/Http/Controllers/UploadController.php
class UploadController extends Controller
{
public function store(UploadFileRequest $request): RedirectResponse
{
$path = $request->file('file')->store(
'uploads/' . now()->format('Y/m'),
'public'
);
// $path => "uploads/2025/05/randomname.pdf"
return back()->with('success', 'File uploaded successfully.');
}
}
All Comments