diff --git a/Services/FileUploader.php b/Services/FileUploader.php index 83e3ea3..ea2ac76 100644 --- a/Services/FileUploader.php +++ b/Services/FileUploader.php @@ -83,11 +83,32 @@ public function generateNameByOriginal($originalName) return sprintf( '%s-%s', uniqid(), - preg_replace( - '/\s+/', - '-', - $this->translator->transliterate($originalName) - ) + $this->clearName($originalName) + ); + } + + /** + * Name cleanup + * @param $originalName + * @return string + */ + protected function clearName($originalName) + { + //basic check on URL encoding + if (urldecode($originalName) !== $originalName) { + $originalName = urldecode($originalName); + } + + $originalName = preg_replace( + '/[\+\\/\%]+/', + '_', + $originalName + ); + + return preg_replace( + '/\s+/', + '-', + $this->translator->transliterate($originalName) ); }