File tree Expand file tree Collapse file tree 2 files changed +24
-4
lines changed
Expand file tree Collapse file tree 2 files changed +24
-4
lines changed Original file line number Diff line number Diff line change @@ -273,19 +273,37 @@ private function getNewName($file)
273273 $ new_file_name = $ this ->helper
274274 ->translateFromUtf8 (trim (pathinfo ($ file ->getClientOriginalName (), PATHINFO_FILENAME )));
275275
276+ $ extension = $ file ->getClientOriginalExtension ();
277+
276278 if (config ('lfm.rename_file ' ) === true ) {
277279 $ new_file_name = uniqid ();
278280 } elseif (config ('lfm.alphanumeric_filename ' ) === true ) {
279281 $ new_file_name = preg_replace ('/[^A-Za-z0-9\- \']/ ' , '_ ' , $ new_file_name );
280282 }
281283
282- $ extension = $ file ->getClientOriginalExtension ();
283-
284284 if ($ extension ) {
285- $ new_file_name .= '. ' . $ extension ;
285+ $ new_file_name_with_extention = $ new_file_name . '. ' . $ extension ;
286286 }
287287
288- return $ new_file_name ;
288+ if (config ('lfm.rename_duplicates ' ) === true ) {
289+ $ counter = 1 ;
290+ $ file_name_without_extentions = $ new_file_name ;
291+ while ($ this ->setName (($ extension ) ? $ new_file_name_with_extention : $ new_file_name )->exists ()) {
292+ if (config ('lfm.alphanumeric_filename ' ) === true ) {
293+ $ suffix = '_ ' .$ counter ;
294+ } else {
295+ $ suffix = " ( {$ counter }) " ;
296+ }
297+ $ new_file_name = $ file_name_without_extentions .$ suffix ;
298+
299+ if ($ extension ) {
300+ $ new_file_name_with_extention = $ new_file_name . '. ' . $ extension ;
301+ }
302+ $ counter ++;
303+ }
304+ }
305+
306+ return ($ extension ) ? $ new_file_name_with_extention : $ new_file_name ;
289307 }
290308
291309 private function saveFile ($ file , $ new_file_name )
Original file line number Diff line number Diff line change 9494
9595 'rename_file ' => false ,
9696
97+ 'rename_duplicates ' => false ,
98+
9799 'alphanumeric_filename ' => false ,
98100
99101 'alphanumeric_directory ' => false ,
You can’t perform that action at this time.
0 commit comments