@@ -200,10 +200,21 @@ public function moveFileFromTmp($imageName)
200200 {
201201 $ baseTmpPath = $ this ->getBaseTmpPath ();
202202 $ basePath = $ this ->getBasePath ();
203-
203+
204204 $ baseImagePath = $ this ->getFilePath ($ basePath , $ imageName );
205205 $ baseTmpImagePath = $ this ->getFilePath ($ baseTmpPath , $ imageName );
206-
206+
207+ $ destinationFileAbsolutePath = $ this ->mediaDirectory ->getAbsolutePath ($ baseImagePath );
208+ $ fileInfo = pathinfo ($ destinationFileAbsolutePath );
209+ if (file_exists ($ destinationFileAbsolutePath )) {
210+ $ index = 1 ;
211+ $ imageName = $ fileInfo ['filename ' ] . '. ' . $ fileInfo ['extension ' ];
212+ while (file_exists ($ fileInfo ['dirname ' ] . '/ ' . $ imageName )) {
213+ $ imageName = $ fileInfo ['filename ' ] . '_ ' . $ index . '. ' . $ fileInfo ['extension ' ];
214+ $ index ++;
215+ }
216+ $ baseImagePath = $ this ->getFilePath ($ basePath , $ imageName );
217+ }
207218 try {
208219 $ this ->coreFileStorageDatabase ->copyFile (
209220 $ baseTmpImagePath ,
@@ -222,7 +233,7 @@ public function moveFileFromTmp($imageName)
222233 return $ imageName ;
223234 }
224235
225- /**
236+ /**
226237 * Checking file for save and save it to tmp dir
227238 *
228239 * @param string $fileId
@@ -233,16 +244,16 @@ public function moveFileFromTmp($imageName)
233244 */
234245 public function saveFileToTmpDir ($ fileId )
235246 {
236- $ baseTmpPath = $ this ->getBaseTmpPath ();
247+ $ baseTmpPath = $ this ->getBaseTmpPath ();
237248
238249 /** @var \Magento\MediaStorage\Model\File\Uploader $uploader */
239250 $ uploader = $ this ->uploaderFactory ->create (['fileId ' => $ fileId ]);
240251 $ uploader ->setAllowedExtensions ($ this ->getAllowedExtensions ());
241252 $ uploader ->setAllowRenameFiles (true );
242253 if (!$ uploader ->checkMimeType ($ this ->allowedMimeTypes )) {
243254 throw new \Magento \Framework \Exception \LocalizedException (__ ('File validation failed. ' ));
244- }
245- $ result = $ uploader ->save ($ this ->mediaDirectory ->getAbsolutePath ($ baseTmpPath ));
255+ }
256+ $ result = $ uploader ->save ($ this ->mediaDirectory ->getAbsolutePath ($ baseTmpPath ));
246257 unset($ result ['path ' ]);
247258
248259 if (!$ result ) {
0 commit comments