//upload.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<title>Laravel File Upload</title>
<style>
.container {
max-width: 500px;
}
dl, ol, ul {
margin: 0;
padding: 0;
list-style: none;
}
</style>
</head>
<body>
<div class="container mt-5">
<form action="{{route('fileUpload')}}" method="post" enctype="multipart/form-data">
<h3 class="text-center mb-5">Upload File in Laravel</h3>
@csrf
@if ($message = Session::get('success'))
<div class="alert alert-success">
<strong>{{ $message }}</strong>
</div>
@endif
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="custom-file">
<input type="file" name="file" class="custom-file-input" id="chooseFile">
<label class="custom-file-label" for="chooseFile">Select file</label>
</div>
<button type="submit" name="submit" class="btn btn-primary btn-block mt-4">
Upload Files
</button>
</form>
</div>
</body>
</html>
//web.php
use IlluminateSupportFacadesRoute;
use AppHttpControllersUploadController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/upload-file', [UploadController::class, 'createForm']);
Route::post('/upload-file', [UploadController::class, 'fileUpload'])->name('fileUpload');
//UploadController.php
<?php
namespace AppHttpControllers;
use AppModelsUpload;
use IlluminateSupportFacadesFile;
use IlluminateHttpRequest;
class UploadController extends Controller
{
//
public function createForm(){
return view('upload');
}
public function fileUpload(Request $req){
// $req->validate([
// 'file' => 'required|mimes:csv,txt,xlx,xls,pdf|max:2048'
// ]);
$fileModel = new Upload;
if($req->file()) {
$fileName = time().'_'.$req->file->getClientOriginalName();
$filePath = $req->file('file')->storeAs('uploads', $fileName, 'public');
$fileModel->name = time().'_'.$req->file->getClientOriginalName();
$fileModel->file_path = '/storage/' . $filePath;
$fileModel->save();
return back()
->with('success','File has been uploaded.')
->with('file', $fileName);
}
}
}
//upload.php
<?php
namespace AppModels;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Upload extends Model
{
// use HasFactory;
protected $table = 'tbl_upload';
}