Esempio n. 1
0
 /**
  * Обработаем создание нового изображения.
  */
 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;
 }