/** * Constructor. * * @param File $file A File instance */ public function __construct(File $file) { if ($file instanceof UploadedFile) { parent::__construct($file->getPathname(), $file->getClientOriginalName(), $file->getClientMimeType(), $file->getClientSize(), $file->getError(), true); } else { parent::__construct($file->getPathname(), $file->getBasename(), $file->getMimeType(), $file->getSize(), 0, true); } }
/** * @param File $file * @return string */ protected function getNormalizedFilename(File $file) { if ($file instanceof UploadedFile) { $originalFilename = $file->getClientOriginalName(); $size = $file->getClientSize(); } else { $originalFilename = $file->getFilename(); $size = $file->getSize(); } $name = preg_replace(self::REGEX_FILENAME_EXT, '', $originalFilename); $name = preg_replace(self::REGEX_INVALID_FILENAME_CHARS, '_', $name); $hash = substr(sha1(json_encode(array(time(), $name, $size))), 0, 7); $ext = $file->getExtension(); if (!$ext) { $ext = explode('.', $originalFilename); $ext = end($ext); } $filename = sprintf('%s_%s.%s', $name, $hash, $ext); return $filename; }