/** * Обработаем создание нового изображения. */ private function handleSaveImage() { header('Content-Type: application/json; charset=utf8'); // A list of permitted file extensions $allowed = ['png', 'jpg', 'jpeg']; $extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION); if (!in_array(strtolower($extension), $allowed)) { echo json_encode(['status' => 'error', 'message' => 'wrong extension']); exit; } list($width, $height, $type, $attr) = getimagesize($_FILES['upl']['tmp_name']); if ($width < Size::PREVIEW_MIN_WIDTH) { echo json_encode(['status' => 'error', 'message' => 'too small size']); exit; } $id = uniqid(); $fileName = Image::getName($id); $previewFileName = Image::getPreviewName($id); $workFileName = Image::getWorkName($id); $originFilePath = IMG_DOWNLOAD . $fileName; if (move_uploaded_file($_FILES['upl']['tmp_name'], $originFilePath)) { $Imagine = new CustomImagine(); $Image = $Imagine->open($originFilePath)->copy(); $coefficient = $Image->getSize()->getWidth() / Size::PREVIEW_MIN_WIDTH; $previewHeight = $Image->getSize()->getHeight() / $coefficient; $Image->resize(new Box(Size::PREVIEW_MIN_WIDTH, $previewHeight))->save(IMG_DOWNLOAD . $previewFileName)->save(IMG_DOWNLOAD . $workFileName); echo json_encode(['status' => 'success', 'id' => $id]); exit; } echo json_encode(['status' => 'error', 'message' => 'Unknown error']); exit; }