summaryrefslogtreecommitdiff
path: root/app/Http/Controllers/SiteController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http/Controllers/SiteController.php')
-rw-r--r--app/Http/Controllers/SiteController.php39
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;
+ }
}