diff --git a/vendor/magento/framework/File/Uploader.php b/vendor/magento/framework/File/Uploader.php index 0913ed01571..971161043fb 100644 --- a/vendor/magento/framework/File/Uploader.php +++ b/vendor/magento/framework/File/Uploader.php @@ -710,20 +710,22 @@ class Uploader */ public static function getNewFileName($destinationFile) { + /** @var Filesystem $fileSystem */ + $fileSystem = ObjectManager::getInstance()->get(Filesystem::class); + $local = $fileSystem->getDirectoryRead(DirectoryList::ROOT); + + $fileExists = function ($path) use ($local) { + return $local->isExist($path); + }; + $fileInfo = pathinfo($destinationFile); - if (file_exists($destinationFile)) { - $index = 1; - $baseName = $fileInfo['filename'] . '.' . $fileInfo['extension']; - while (file_exists($fileInfo['dirname'] . '/' . $baseName)) { - $baseName = $fileInfo['filename'] . '_' . $index . '.' . $fileInfo['extension']; - $index++; - } - $destFileName = $baseName; - } else { - return $fileInfo['basename']; + $index = 1; + while ($fileExists($fileInfo['dirname'] . '/' . $fileInfo['basename'])) { + $fileInfo['basename'] = $fileInfo['filename'] . '_' . ($index++); + $fileInfo['basename'] .= isset($fileInfo['extension']) ? '.' . $fileInfo['extension'] : ''; } - return $destFileName; + return $fileInfo['basename']; } /**