diff options
Diffstat (limited to 'app/Http/Controllers/SiteController.php')
| -rw-r--r-- | app/Http/Controllers/SiteController.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index 7bcb60f..7b83d8a 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Storage; + class SiteController extends Controller { /** @@ -23,4 +25,41 @@ class SiteController extends Controller public static function duneQuote(){ return '<b>todo</b>'; } + + public function uploadFiles(Request $req){ + $files = $req->file('f'); + $res = [ + 'num_files' => sizeof($files), + 'num_failed'=> 0, + 'num_uploaded' => 0, + 'success' => false, + 'files' => [] + ]; + + foreach ($files as $f){ + //validate file + /*$validated = $req->validate([ + 'f' => 'required|file|max:10240', //10MB + ]);*/ + $filename = $f->getClientOriginalName(); + if (Storage::disk('public')->fileExists($filename)){ + $filename = Carbon::now()->timestamp.'_'.$filename; + } + $path = $f->storeAs( + 'uploads', + $filename, + 'public' + ); + if ($path){ + $res['num_uploaded'] += 1; + array_push($res['files'], $path); + } else { + $res['num_failed'] += 1; + } + if (sizeof($res['num_uploaded']) == sizeof($files)){ + $res['success'] = true; + } + } + return $res; + } } |
