/** * Uploads a file * * @return Response */ public function upload(Request $request) { // get request data $email = $request->input('auth-email'); $id = $request->input('auth-id'); // get site $site = Site::getById($id); // get file $file = $request->file('file'); // get file info $filename = $file->getClientOriginalName(); $contentType = $file->getMimeType(); $size = intval($file->getClientSize() / 1024); // get the extension $ext = $file->getClientOriginalExtension(); // allowed filetypes $allowed = explode(',', env('ALLOWED_FILETYPES')); // trim and lowercase all items in the aray $allowed = array_map('trim', $allowed); $allowed = array_map('strtolower', $allowed); // directory to save $directory = app()->basePath() . '/public/sites/' . $site->id . '/files'; // save image if ($ext == 'png' || $ext == 'jpg' || $ext == 'gif' || $ext == 'svg') { // upload image // move the file $file->move($directory, $filename); // set path $path = $directory . '/' . $filename; $arr = Utilities::createThumb($site, $path, $filename); // create array $arr = array('filename' => $filename, 'fullUrl' => '/files/' . $filename, 'thumbUrl' => '/files/thumbs/' . $filename, 'extension' => $ext, 'isImage' => true, 'width' => $arr['width'], 'height' => $arr['height']); } else { if (in_array($ext, $allowed)) { // save file if it is allowed // move the file $file->move($directory, $filename); // set url $url = $site->domain; $arr = array('filename' => $filename, 'fullUrl' => $url . '/files/' . $filename, 'thumbUrl' => NULL, 'extension' => $ext, 'isImage' => false, 'width' => -1, 'height' => -1); } else { return response('Unauthorized', 401); } } // return OK return response()->json($arr); }