public function ChangeImage() { Log::Debug("Changing resource image for resource id %s", $this->page->GetResourceId()); $uploadedImage = $this->page->GetUploadedImage(); if ($uploadedImage->IsError()) { die("Image error: " . $uploadedImage->Error()); } $fileType = strtolower($uploadedImage->Extension()); $supportedTypes = array('jpeg', 'gif', 'png', 'jpg'); if (!in_array($fileType, $supportedTypes)) { die("Invalid image type: {$fileType}"); } $image = $this->imageFactory->Load($uploadedImage->TemporaryName()); $image->ResizeToWidth(300); $fileName = "resource{$this->page->GetResourceId()}.{$fileType}"; $imageUploadDirectory = Configuration::Instance()->GetKey(ConfigKeys::IMAGE_UPLOAD_DIRECTORY); $path = ''; if (is_dir($imageUploadDirectory)) { $path = $imageUploadDirectory; } else { if (is_dir(ROOT_DIR . $imageUploadDirectory)) { $path = ROOT_DIR . $imageUploadDirectory; } } $path = "{$path}/{$fileName}"; Log::Debug("Saving resource image {$path}"); $image->Save($path); $this->SaveResourceImage($fileName); }