Laravel Basic
Laravel Form
Laravel Database
Laravel Advance
Run:
php artisan make:controller Api/UploadController
Inside app/Http/Controllers/Api/UploadController.php:
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class UploadController extends Controller
{
public function store(Request $request)
{
// ✅ Validate form fields + file
$request->validate([
'name' => 'required|string|max:255',
'file' => 'required|file|mimes:jpg,png,pdf|max:2048',
]);
// Get file
$file = $request->file('file');
// Generate unique name
$filename = time().'_'.$file->getClientOriginalName();
// Move to public/uploads
$file->move(public_path('uploads'), $filename);
return response()->json([
'message' => 'File uploaded successfully',
'name' => $request->name,
'file_url' => url('uploads/'.$filename),
]);
}
}
In routes/api.php:
use App\Http\Controllers\Api\UploadController;
Route::post('/upload', [UploadController::class, 'store']);
Fill form data in postman
{
"message": "File uploaded successfully",
"name": "John",
"file_url": "http://127.0.0.1:8000/uploads/1756831472_image1.jpg"
}