@@ -467,7 +467,7 @@ private function prepareFileForSaving(array $fileData, string $name, array $sett
467467 }
468468
469469 /**
470- * @return list<array{fileNode?: Node, name?: string}> Normalized files array
470+ * @return list<array{fileNode?: Node, name?: string, uploadedFile?: array }> Normalized files array
471471 */
472472 private function prepareFilesForSaving (array $ file , array $ files , array $ settings ): array {
473473 $ uploadedFiles = $ this ->request ->getUploadedFile ('files ' ) ?: $ this ->request ->getUploadedFile ('file ' );
@@ -489,7 +489,7 @@ private function prepareFilesForSaving(array $file, array $files, array $setting
489489 }
490490
491491 /**
492- * @return list<array{fileNode: Node , name: string}>
492+ * @return list<array{uploadedFile: array , name: string}>
493493 */
494494 private function processUploadedFiles (array $ uploadedFiles , array $ settings ): array {
495495 $ filesArray = [];
@@ -498,28 +498,33 @@ private function processUploadedFiles(array $uploadedFiles, array $settings): ar
498498 if (is_array ($ uploadedFiles ['tmp_name ' ])) {
499499 $ count = count ($ uploadedFiles ['tmp_name ' ]);
500500 for ($ i = 0 ; $ i < $ count ; $ i ++) {
501- $ filesArray [] = [
501+ $ uploadedFile = [
502502 'tmp_name ' => $ uploadedFiles ['tmp_name ' ][$ i ],
503503 'name ' => $ uploadedFiles ['name ' ][$ i ],
504504 'type ' => $ uploadedFiles ['type ' ][$ i ],
505505 'size ' => $ uploadedFiles ['size ' ][$ i ],
506506 'error ' => $ uploadedFiles ['error ' ][$ i ],
507507 ];
508+ $ this ->fileService ->validateUploadedFile ($ uploadedFile );
509+ $ filesArray [] = [
510+ 'uploadedFile ' => $ uploadedFile ,
511+ 'name ' => pathinfo ($ uploadedFile ['name ' ], PATHINFO_FILENAME ),
512+ ];
508513 }
509514 } else {
510- $ filesArray [] = $ uploadedFiles ;
515+ $ this ->fileService ->validateUploadedFile ($ uploadedFiles );
516+ $ filesArray [] = [
517+ 'uploadedFile ' => $ uploadedFiles ,
518+ 'name ' => pathinfo ($ uploadedFiles ['name ' ], PATHINFO_FILENAME ),
519+ ];
511520 }
512521 }
513522
514523 if (empty ($ filesArray )) {
515524 throw new LibresignException ($ this ->l10n ->t ('No files uploaded ' ));
516525 }
517526
518- return $ this ->fileService ->processUploadedFilesWithRollback (
519- $ filesArray ,
520- $ this ->userSession ->getUser (),
521- $ settings
522- );
527+ return $ filesArray ;
523528 }
524529
525530 /**
@@ -530,14 +535,10 @@ private function saveFiles(array $files, string $name, array $settings): DataRes
530535 throw new LibresignException ($ this ->l10n ->t ('File or files parameter is required ' ));
531536 }
532537
533- $ preparedFiles = [];
534- foreach ($ files as $ fileData ) {
535- $ fileName = (count ($ files ) === 1 ) ? $ name : '' ;
536- $ preparedFiles [] = $ this ->prepareFileForSaving ($ fileData , $ fileName , $ settings );
537- }
538-
539- if (count ($ preparedFiles ) === 1 ) {
540- $ prepared = $ preparedFiles [0 ];
538+ if (count ($ files ) === 1 ) {
539+ $ fileData = $ files [0 ];
540+ $ fileName = $ name ;
541+ $ prepared = $ this ->prepareFileForSaving ($ fileData , $ fileName , $ settings );
541542 $ savedFile = $ this ->requestSignatureService ->save ([
542543 'file ' => ['fileNode ' => $ prepared ['node ' ]],
543544 'name ' => $ prepared ['name ' ],
@@ -549,7 +550,7 @@ private function saveFiles(array $files, string $name, array $settings): DataRes
549550 }
550551
551552 $ result = $ this ->requestSignatureService ->saveEnvelope ([
552- 'files ' => $ preparedFiles ,
553+ 'files ' => $ files ,
553554 'name ' => $ name ,
554555 'userManager ' => $ this ->userSession ->getUser (),
555556 'settings ' => $ settings ,
0 commit comments