Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.29 KB | None | 0 0
  1. $SpecialList->AddToArray((new \Handle\HandleItem())->
  2. SetRequest("addImage")->
  3. SetFunction(function ($arg){
  4.     /** @var Handle\Arguments $arg */
  5.     $DebugInfo = &$arg->debug;
  6.  
  7.     //$DebugInfo = &$arg["debug"];
  8.     $DebugInfo["status"] = "Init";
  9.     $name = GetInput("name");
  10.     $id = GetInput("id");
  11.     $image = PhotoQuery::create()->findOneById($id);
  12.     if(empty($image))
  13.         $image = new Photo();
  14.     $dir = $arg->defaultPath["App"] . "Resources" . DIRECTORY_SEPARATOR;
  15.     if(!is_dir($dir))
  16.         mkdir($dir,0777,true);
  17.     if(!is_dir(substr($dir,0,-1)))
  18.         mkdir(substr($dir,0,-1),0777,true);
  19.     $dirImages = $dir."images";
  20.     $dirIcons = $dir."icons";
  21.     if(!is_dir($dirImages))
  22.         mkdir($dirImages,0777,true);
  23.     if(!is_dir($dirIcons))
  24.         mkdir($dirIcons,0777,true);
  25.     if(isset($_FILES['image'])){
  26.         $errors = array();
  27.         $file_name = $_FILES['image']['name'];
  28.         $file_size = $_FILES['image']['size'];
  29.         $file_tmp = $_FILES['image']['tmp_name'];
  30.         $file_type = $_FILES['image']['type'];
  31.         $file_ext = strtolower(end(explode('.',$_FILES['image']['name'])));
  32.  
  33.         $extensions = array("jpeg","jpg","png","gif","wbmp");
  34.  
  35.         if(in_array($file_ext,$extensions) === false){
  36.             $errors[]="extension not allowed, please choose a JPEG or PNG file.";
  37.         }
  38.  
  39.         if($file_size / 1048576 > 7.5){
  40.             $errors[]='File size must ≤ 7.5 Mb    => ('.($file_size/1048576).')';
  41.         }
  42.  
  43.         $DebugInfo["errors"] = $errors;
  44.         if(empty($errors)==true){
  45.             $DebugInfo["status"] = "end";
  46.             $fileName = md5(time());
  47.             $fileName .= ".".$file_ext;
  48.             file_put_contents($dirImages.DIRECTORY_SEPARATOR.$fileName,"");
  49.             move_uploaded_file($file_tmp,$dirImages.DIRECTORY_SEPARATOR.$fileName);
  50.             $file_tmp = $dirImages.DIRECTORY_SEPARATOR.$fileName;
  51.             list($width, $height) = getimagesize($file_tmp);
  52.             $hS = $height / $width;
  53.             $newWidth = 400 ;
  54.             $newHeight = 400 * $hS;
  55.             $image_p = imagecreatetruecolor($newWidth, $newHeight);
  56.             switch($file_ext){
  57.                 case "png":
  58.                     $imageFrom = imagecreatefrompng($file_tmp);
  59.                     break;
  60.                 case "gif":
  61.                     $imageFrom = imagecreatefromgif($file_tmp);
  62.                     break;
  63.                 case "svg":
  64.                     $imageFrom = imagecreatefromwbmp($file_tmp);
  65.                     break;
  66.                 default:
  67.                     $imageFrom = imagecreatefromjpeg($file_tmp);
  68.                     break;
  69.             }
  70.             imagecopyresampled($image_p, $imageFrom, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  71.             imagejpeg($image_p,$dirIcons.DIRECTORY_SEPARATOR.$fileName , 100);
  72.             $image->setFile($dirImages.DIRECTORY_SEPARATOR.$fileName);
  73.             $image->setFileName($name);
  74.             $image->setIcon($dirIcons.DIRECTORY_SEPARATOR.$fileName );
  75.             $image->setResolution($width."x".$height);
  76.             $image->setVisibility(true);
  77.             $image->save();
  78.             return true;
  79.         }
  80.     }
  81.  
  82.     $DebugInfo["status"] = "end";
  83.     $arg->status = \Handle\Responses::Fail;
  84.     return false;
  85. }));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement