Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $SpecialList->AddToArray((new \Handle\HandleItem())->
- SetRequest("addImage")->
- SetFunction(function ($arg){
- /** @var Handle\Arguments $arg */
- $DebugInfo = &$arg->debug;
- //$DebugInfo = &$arg["debug"];
- $DebugInfo["status"] = "Init";
- $name = GetInput("name");
- $id = GetInput("id");
- $image = PhotoQuery::create()->findOneById($id);
- if(empty($image))
- $image = new Photo();
- $dir = $arg->defaultPath["App"] . "Resources" . DIRECTORY_SEPARATOR;
- if(!is_dir($dir))
- mkdir($dir,0777,true);
- if(!is_dir(substr($dir,0,-1)))
- mkdir(substr($dir,0,-1),0777,true);
- $dirImages = $dir."images";
- $dirIcons = $dir."icons";
- if(!is_dir($dirImages))
- mkdir($dirImages,0777,true);
- if(!is_dir($dirIcons))
- mkdir($dirIcons,0777,true);
- if(isset($_FILES['image'])){
- $errors = array();
- $file_name = $_FILES['image']['name'];
- $file_size = $_FILES['image']['size'];
- $file_tmp = $_FILES['image']['tmp_name'];
- $file_type = $_FILES['image']['type'];
- $file_ext = strtolower(end(explode('.',$_FILES['image']['name'])));
- $extensions = array("jpeg","jpg","png","gif","wbmp");
- if(in_array($file_ext,$extensions) === false){
- $errors[]="extension not allowed, please choose a JPEG or PNG file.";
- }
- if($file_size / 1048576 > 7.5){
- $errors[]='File size must ≤ 7.5 Mb => ('.($file_size/1048576).')';
- }
- $DebugInfo["errors"] = $errors;
- if(empty($errors)==true){
- $DebugInfo["status"] = "end";
- $fileName = md5(time());
- $fileName .= ".".$file_ext;
- file_put_contents($dirImages.DIRECTORY_SEPARATOR.$fileName,"");
- move_uploaded_file($file_tmp,$dirImages.DIRECTORY_SEPARATOR.$fileName);
- $file_tmp = $dirImages.DIRECTORY_SEPARATOR.$fileName;
- list($width, $height) = getimagesize($file_tmp);
- $hS = $height / $width;
- $newWidth = 400 ;
- $newHeight = 400 * $hS;
- $image_p = imagecreatetruecolor($newWidth, $newHeight);
- switch($file_ext){
- case "png":
- $imageFrom = imagecreatefrompng($file_tmp);
- break;
- case "gif":
- $imageFrom = imagecreatefromgif($file_tmp);
- break;
- case "svg":
- $imageFrom = imagecreatefromwbmp($file_tmp);
- break;
- default:
- $imageFrom = imagecreatefromjpeg($file_tmp);
- break;
- }
- imagecopyresampled($image_p, $imageFrom, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
- imagejpeg($image_p,$dirIcons.DIRECTORY_SEPARATOR.$fileName , 100);
- $image->setFile($dirImages.DIRECTORY_SEPARATOR.$fileName);
- $image->setFileName($name);
- $image->setIcon($dirIcons.DIRECTORY_SEPARATOR.$fileName );
- $image->setResolution($width."x".$height);
- $image->setVisibility(true);
- $image->save();
- return true;
- }
- }
- $DebugInfo["status"] = "end";
- $arg->status = \Handle\Responses::Fail;
- return false;
- }));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement