/** * @param FileUpload|NULL $file * @param string $folder * * @return array|bool */ protected function saveImage(FileUpload $file = NULL, $folder = '') { if ($this->mainManager instanceof MagicManager) { $folder = $this->mainManager->getImageFolder(); } else { if ($folder == '') { $folder = 'misc'; } } // Main image $image = NULL; if (isset($file) && $file->isOk()) { // Save ... $year = date('Y'); $month = date('m'); $namespace = "{$folder}/{$year}/{$month}"; $this->imageStorage->setNamespace($namespace); $image = $this->imageStorage->save($file->getContents(), $file->getName()); $filename = pathinfo($image->getFile(), PATHINFO_BASENAME); // Prepare thumbnail $this->imgPipe->setNamespace($namespace); $this->imgPipe->request($filename, '200x200', 'exact'); $this->imgPipe->setNamespace($namespace); $this->imgPipe->request($filename, '100x100', 'exact'); $data = ['namespace' => $namespace, 'filename' => $filename]; return $data; } else { return FALSE; } }
/** * @param FileUpload $fileUpload * @return string */ public static function sanitizeFileName(FileUpload $fileUpload) { $filename = $fileUpload->getSanitizedName(); $filename = Strings::lower($filename); $fileInfo = new \SplFileInfo($filename); $suffix = $fileInfo->getExtension(); $basename = $fileInfo->getBasename(".{$suffix}"); $hash = md5($fileUpload->getContents()); $hash = Strings::substring($hash, 0, 9); return Strings::substring($basename, 0, 50) . "_{$hash}.{$suffix}"; }