Exemplo n.º 1
0
 /**
  * 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);
 }