From a81fb8a596ddb4103417b6d02a6846561107a1b2 Mon Sep 17 00:00:00 2001 From: Andreas Fernandez <a.fernandez@scripting-base.de> Date: Sun, 10 Sep 2017 11:46:21 +0200 Subject: [PATCH] [BUGFIX] Fix file upload and directory creation in file browser While #81763 was in development, some locations of the file operation handling were not adjusted. This patch fixes the left over places. Resolves: #82436 Related: #81763 Releases: master Change-Id: I450458f5ef687969b22a194a2387953330b8d17d Reviewed-on: https://review.typo3.org/54094 Tested-by: Riccardo De Contardi <erredeco@gmail.com> Reviewed-by: Benjamin Kott <benjamin.kott@outlook.com> Tested-by: Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by: Tymoteusz Motylewski <t.motylewski@gmail.com> Tested-by: Tymoteusz Motylewski <t.motylewski@gmail.com> --- .../Classes/Controller/File/FileController.php | 3 ++- .../Controller/File/FileUploadController.php | 2 +- .../Private/Templates/File/CreateFolder.html | 6 +++--- .../Private/Templates/File/ReplaceFile.html | 8 ++++---- .../Classes/View/FolderUtilityRenderer.php | 16 ++++++++-------- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/typo3/sysext/backend/Classes/Controller/File/FileController.php b/typo3/sysext/backend/Classes/Controller/File/FileController.php index 1c862bacf38e..a9ec9cdada08 100644 --- a/typo3/sysext/backend/Classes/Controller/File/FileController.php +++ b/typo3/sysext/backend/Classes/Controller/File/FileController.php @@ -98,7 +98,8 @@ class FileController $this->redirect = GeneralUtility::sanitizeLocalUrl(GeneralUtility::_GP('redirect')); } else { $mode = key($this->file); - $this->redirect = GeneralUtility::sanitizeLocalUrl($this->file[$mode][0]['redirect']); + $elementKey = key($this->file[$mode]); + $this->redirect = GeneralUtility::sanitizeLocalUrl($this->file[$mode][$elementKey]['redirect']); } $this->CB = GeneralUtility::_GP('CB'); diff --git a/typo3/sysext/backend/Classes/Controller/File/FileUploadController.php b/typo3/sysext/backend/Classes/Controller/File/FileUploadController.php index dd899779d7fd..03fcbebde0fb 100644 --- a/typo3/sysext/backend/Classes/Controller/File/FileUploadController.php +++ b/typo3/sysext/backend/Classes/Controller/File/FileUploadController.php @@ -189,7 +189,7 @@ class FileUploadController extends AbstractModule // Submit button: $content .= ' <div id="c-submit"> - <input type="hidden" name="redirect" value="' . $this->returnUrl . '" /><br /> + <input type="hidden" name="data[upload][1][redirect]" value="' . $this->returnUrl . '" /><br /> <input class="btn btn-default" type="submit" value="' . htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:file_upload.php.submit')) . '" /> </div> '; diff --git a/typo3/sysext/backend/Resources/Private/Templates/File/CreateFolder.html b/typo3/sysext/backend/Resources/Private/Templates/File/CreateFolder.html index 01e652ec45b8..b4045c5fbe37 100644 --- a/typo3/sysext/backend/Resources/Private/Templates/File/CreateFolder.html +++ b/typo3/sysext/backend/Resources/Private/Templates/File/CreateFolder.html @@ -47,9 +47,9 @@ <div class="form-group"> <label for="newMedia"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media.label" /></label> {cshFileNewMedia -> f:format.raw()} <div class="form-control-wrap"> - <input class="form-control" type="text" id="newMedia" name="file[newMedia][0][url]" + <input class="form-control" type="text" id="newMedia" name="data[newMedia][0][url]" placeholder="{f:translate(key: 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media.placeholder')}" /> - <input type="hidden" name="file[newMedia][0][target]" value="{target}" /> + <input type="hidden" name="data[newMedia][0][target]" value="{target}" /> </div> <div class="help-block"> <f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media.allowedProviders" /><br> @@ -62,7 +62,7 @@ </div> <div class="form-group"> <input class="btn btn-default" type="submit" value="{f:translate(key: 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media.submit')}" /> - <input type="hidden" name="redirect" value="{returnUrl}" /> + <input type="hidden" name="data[newMedia][0][redirect]" value="{returnUrl}" /> </div> </div> </form> diff --git a/typo3/sysext/backend/Resources/Private/Templates/File/ReplaceFile.html b/typo3/sysext/backend/Resources/Private/Templates/File/ReplaceFile.html index c4b7026ecb80..522512d2ea9e 100644 --- a/typo3/sysext/backend/Resources/Private/Templates/File/ReplaceFile.html +++ b/typo3/sysext/backend/Resources/Private/Templates/File/ReplaceFile.html @@ -2,7 +2,7 @@ <div> <form action="{moduleUrlTceFile}" role="form" method="post" name="editform" enctype="multipart/form-data"> <div class="form-group"> - <input type="checkbox" value="1" id="keepFilename" name="file[replace][1][keepFilename]"> + <input type="checkbox" value="1" id="keepFilename" name="data[replace][1][keepFilename]"> <label for="keepFilename"><f:translate key="LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:file_replace.php.keepfiletitle" /></label> </div> @@ -24,14 +24,14 @@ </script> <input type="hidden" name="overwriteExistingFiles" value="replace" /> - <input type="hidden" name="file[replace][1][data]" value="1" /> - <input type="hidden" name="file[replace][1][uid]" value="{uid}" /> + <input type="hidden" name="data[replace][1][data]" value="1" /> + <input type="hidden" name="data[replace][1][uid]" value="{uid}" /> <div class="form-group"> <input class="btn btn-primary" type="submit" value="{f:translate(key: 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:file_replace.php.submit')}" /> <input class="btn btn-danger" type="submit" value="{f:translate(key: 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.cancel')}" onclick="backToList(); return false;" /> - <input type="hidden" name="redirect" value="{returnUrl}" /> + <input type="hidden" name="data[replace][1][redirect]" value="{returnUrl}" /> </div> </form> </div> diff --git a/typo3/sysext/recordlist/Classes/View/FolderUtilityRenderer.php b/typo3/sysext/recordlist/Classes/View/FolderUtilityRenderer.php index 232765eb3d8e..b65d4fde094c 100644 --- a/typo3/sysext/recordlist/Classes/View/FolderUtilityRenderer.php +++ b/typo3/sysext/recordlist/Classes/View/FolderUtilityRenderer.php @@ -74,13 +74,13 @@ class FolderUtilityRenderer $a = 1; $markup[] = '<div class="form-group">'; $markup[] = '<div class="input-group">'; - $markup[] = '<input class="form-control" type="text" name="file[newfolder][' . $a . '][data]" />'; + $markup[] = '<input class="form-control" type="text" name="data[newfolder][' . $a . '][data]" />'; $markup[] = '<span class="input-group-btn">'; $markup[] = '<input class="btn btn-default" type="submit" name="submit" value="' . htmlspecialchars($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:create_folder.submit')) . '" />'; $markup[] = '</span>'; $markup[] = '</div>'; - $markup[] = '<input type="hidden" name="file[newfolder][' . $a . '][target]" value="' + $markup[] = '<input type="hidden" name="data[newfolder][' . $a . '][target]" value="' . htmlspecialchars($folderObject->getCombinedIdentifier()) . '" />'; // Make footer of upload form, including the submit button: @@ -90,7 +90,7 @@ class FolderUtilityRenderer ['identifier' => $folderObject->getCombinedIdentifier()] ) ); - $markup[] = '<input type="hidden" name="redirect" value="' . htmlspecialchars($redirectValue) . '" />'; + $markup[] = '<input type="hidden" name="data[newfolder][' . $a . '][redirect]" value="' . htmlspecialchars($redirectValue) . '" />'; $markup[] = '</div></form>'; @@ -152,7 +152,7 @@ class FolderUtilityRenderer '', $this->parameterProvider->getUrlParameters(['identifier' => $combinedIdentifier]) ); - $markup[] = '<input type="hidden" name="redirect" value="' . htmlspecialchars($redirectValue) . '" />'; + $markup[] = '<input type="hidden" name="data[upload][1][redirect]" value="' . htmlspecialchars($redirectValue) . '" />'; if (!empty($fileExtList)) { $markup[] = '<div class="form-group">'; @@ -199,12 +199,12 @@ class FolderUtilityRenderer $markup[] = '<h3>' . htmlspecialchars($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media')) . ':</h3>'; $markup[] = '<p><strong>' . htmlspecialchars($lang->getLL('path')) . ':</strong>' . htmlspecialchars($header) . '</p>'; $markup[] = '<div class="form-group">'; - $markup[] = '<input type="hidden" name="file[newMedia][0][target]" value="' + $markup[] = '<input type="hidden" name="data[newMedia][0][target]" value="' . htmlspecialchars($folderObject->getCombinedIdentifier()) . '" />'; - $markup[] = '<input type="hidden" name="file[newMedia][0][allowed]" value="' + $markup[] = '<input type="hidden" name="data[newMedia][0][allowed]" value="' . htmlspecialchars(implode(',', $allowedExtensions)) . '" />'; $markup[] = '<div class="input-group">'; - $markup[] = '<input type="text" name="file[newMedia][0][url]" class="form-control" placeholder="' + $markup[] = '<input type="text" name="data[newMedia][0][url]" class="form-control" placeholder="' . htmlspecialchars($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:online_media.new_media.placeholder')) . '" />'; $markup[] = '<div class="input-group-btn">'; $markup[] = '<button class="btn btn-default">' @@ -219,7 +219,7 @@ class FolderUtilityRenderer $markup[] = implode(' ', $fileExtList); $markup[] = '</div>'; $markup[] = '</div>'; - $markup[] = '<input type="hidden" name="redirect" value="' . htmlspecialchars($redirectValue) . '" />'; + $markup[] = '<input type="hidden" name="data[newMedia][0][redirect]" value="' . htmlspecialchars($redirectValue) . '" />'; $markup[] = '</form>'; $code .= implode(LF, $markup); -- GitLab