protected static function cloneOriginal($fileUid, $suffix) { // Get original image /** @var self $originalMeta */ $originalMeta = self::findOriginal($fileUid); if (!$originalMeta) { throw new FileException('Not found original image by uid `' . $fileUid . '`.'); } // New file meta $imageMeta = new self(); $imageMeta->fileUid = $originalMeta->fileUid; $imageMeta->folder = $originalMeta->folder; $imageMeta->fileMimeType = $originalMeta->fileMimeType; // Generate new file name $extension = pathinfo($originalMeta->fileName, PATHINFO_EXTENSION); $thumbFormat = $extension && $extension === 'png' ? 'png' : FileModule::getInstance()->thumbFormat; $imageMeta->fileName = pathinfo($originalMeta->fileName, PATHINFO_FILENAME) . '.' . $suffix . '.' . $thumbFormat; // Clone original file if (!copy($originalMeta->getPath(), $imageMeta->getPath())) { throw new FileException('Can not clone original file `' . $originalMeta->getRelativePath() . '` to `' . $imageMeta->getRelativePath() . '`.'); } return $imageMeta; }