Drag Upload
/routes/web.php
Route::get('/drag-upload-test', function () { return view('drag-upload-test'); });
Route::post('/drag-upload-post', [StudentController::class, 'files_drag_upload_post']);
/resources/views/drag-upload.blade.php
<link href="https://activetechsystems.com/cdn/apps/drag-upload/drag-upload.css" type="text/css" rel="stylesheet" />
<script src="https://activetechsystems.com/cdn/apps/drag-upload/drag-upload.js" type="text/javascript" ></script>
<div class="container">
<div class="file_upload">
<form action="/drag-upload-post" class="dragdrop">
<?= csrf_field() ?>
<div class="dd-message needsclick" style="font-family: Arial;">
DROP FILES HERE<br /><br /> OR CLICK TO UPLOAD<br />
<br /> jpg, jpeg, png - Max. 1 MB
</div>
</form>
</div>
</div>
app/http/Controllers/TheController.php
public function files_drag_upload_post() {
$allowed_max_size = 1024 * 1024;
$allowed_extensions_arr = ['jpg', 'jpeg', 'png'];
$upload_dir = public_path().'/uploads/';
$fileName = $_FILES['file']['name'];
$uploaded_file = $upload_dir . $fileName;
$ext = pathinfo($uploaded_file, PATHINFO_EXTENSION);
$file_size = $_FILES['file']['size'];
if(in_array($ext, $allowed_extensions_arr) && $file_size <= $allowed_max_size ) {
if(move_uploaded_file($_FILES['file']['tmp_name'], $uploaded_file)) {
rename($uploaded_file, $upload_dir.$this->slug_it($fileName));
}
}
else {
echo $_FILES['file']['create_error']; // mimic create error to show x mark
}
}
public function slug_it($slug) {
$slug = str_replace(' ', '-', $slug);
$slug = strtolower($slug);
return $slug;
}
Drag Upload Test