[TASK] impexp: Remove "Max file size" restriction 82/55382/2
authorChristian Kuhn <lolli@schwarzbu.ch>
Wed, 17 Jan 2018 13:56:12 +0000 (14:56 +0100)
committerAndreas Fernandez <a.fernandez@scripting-base.de>
Wed, 17 Jan 2018 15:36:52 +0000 (16:36 +0100)
The export modules has a file size restriction
that skips file exports if they are bigger than
by default 1MB. This can be raised with an input
field.
The patch removes that input field:
* Configured maximum file sizes are checked during
  upload already. A well configured system should
  expect existing files are ok and just export everything
* The 1MB default size is old fashioned. Typical images
  are often bigger in size and resized only during FE
  rendering
* Skipping arbitrary files in export has a negative
  impact on data consistency of the export.
* Single files can still be excluded from export if
  needed
* Users up until now usually had manually raised the
  limit to some value high enough to make all files fit

Change-Id: Ib70dc48de44d215067474b4c3f6fff8988ab7712
Resolves: #83596
Releases: master
Reviewed-on: https://review.typo3.org/55382
Reviewed-by: Reiner Teubner <rteubner@me.com>
Tested-by: TYPO3com <no-reply@typo3.com>
Tested-by: Reiner Teubner <rteubner@me.com>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
typo3/sysext/core/Documentation/Changelog/9.1/Deprecation-83592-ImpexpRemovedMaximumNumberOfRecordsRestriction.rst
typo3/sysext/core/Documentation/Changelog/9.1/Deprecation-83596-ImpexpRemovedMaxFileSizeRestriction.rst [new file with mode: 0644]
typo3/sysext/impexp/Classes/Controller/ImportExportController.php
typo3/sysext/impexp/Classes/Export.php
typo3/sysext/impexp/Resources/Private/Language/locallang.xlf
typo3/sysext/impexp/Resources/Private/Partials/Export/Save.html
typo3/sysext/install/Configuration/ExtensionScanner/Php/PropertyPublicMatcher.php

index f9b494e..3fda17d 100644 (file)
@@ -40,6 +40,10 @@ export module usually set the 'maximum number of records' value high
 enough to export everything they wanted already. The interface now
 just misses the according input fields.
 
+
+Migration
+=========
+
 On PHP level, the extension scanner will find extensions that use
 the changed methods and checks if they are called with the
 correct number of arguments. Additionally, :php:`E_USER_DEPRECATED`
diff --git a/typo3/sysext/core/Documentation/Changelog/9.1/Deprecation-83596-ImpexpRemovedMaxFileSizeRestriction.rst b/typo3/sysext/core/Documentation/Changelog/9.1/Deprecation-83596-ImpexpRemovedMaxFileSizeRestriction.rst
new file mode 100644 (file)
index 0000000..24c640d
--- /dev/null
@@ -0,0 +1,40 @@
+.. include:: ../../Includes.txt
+
+=================================================================
+Deprecation: #83596 - impexp: Removed "Max file size" restriction
+=================================================================
+
+See :issue:`83596`
+
+Description
+===========
+
+When exporting files using the "Export" interface of extension
+:php:`impexp`, the restriction to only export files of a certain
+maximum size has been removed.
+
+
+Impact
+======
+
+On PHP level, one class property has been deprecated and is unused now:
+
+* :php:`TYPO3\CMS\Impexp\Export->maxFileSize`
+
+
+Affected Installations
+======================
+
+Backend users are probably not affected much: Users of the
+export module usually set the 'max file size' value high
+enough to export everything they wanted already. The interface now
+just misses the according input fields and exports files of all sizes.
+
+
+Migration
+=========
+
+On PHP level, the extension scanner will find extensions that
+still use the deprecated property.
+
+.. index:: Backend, PHP-API, FullyScanned, ext:impexp
\ No newline at end of file
index 32bb582..9a2475e 100644 (file)
@@ -368,7 +368,6 @@ class ImportExportController extends BaseScriptClass
     {
         // BUILDING EXPORT DATA:
         // Processing of InData array values:
-        $inData['maxFileSize'] = MathUtility::forceIntegerInRange($inData['maxFileSize'], 1, 1000000, 1000);
         $inData['filename'] = trim(preg_replace('/[^[:alnum:]._-]*/', '', preg_replace('/\\.(t3d|xml)$/', '', $inData['filename'])));
         if (strlen($inData['filename'])) {
             $inData['filename'] .= $inData['filetype'] === 'xml' ? '.xml' : '.t3d';
@@ -382,7 +381,6 @@ class ImportExportController extends BaseScriptClass
         // Create export object and configure it:
         $this->export = GeneralUtility::makeInstance(Export::class);
         $this->export->init(0);
-        $this->export->maxFileSize = $inData['maxFileSize'] * 1024;
         $this->export->excludeMap = (array)$inData['exclude'];
         $this->export->softrefCfg = (array)$inData['softrefCfg'];
         $this->export->extensionDependencies = ($inData['extension_dep'] === '') ? [] : (array)$inData['extension_dep'];
index 01ca52c..923e960 100644 (file)
@@ -59,8 +59,7 @@ use TYPO3\CMS\Core\Utility\PathUtility;
 class Export extends ImportExport
 {
     /**
-     * 1MB max file size
-     *
+     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10. In v10, just remove property, it is not used any longer.
      * @var int
      */
     public $maxFileSize = 1000000;
@@ -661,10 +660,6 @@ class Export extends ImportExport
      */
     public function export_addSysFile(File $file)
     {
-        if ($file->getProperty('size') >= $this->maxFileSize) {
-            $this->error('File ' . $file->getPublicUrl() . ' was larger (' . GeneralUtility::formatSize($file->getProperty('size')) . ') than the maxFileSize (' . GeneralUtility::formatSize($this->maxFileSize) . ')! Skipping.');
-            return;
-        }
         $fileContent = '';
         try {
             if (!$this->saveFilesOutsideExportFile) {
@@ -724,10 +719,6 @@ class Export extends ImportExport
             $this->error($fI['ID_absFile'] . ' was not a file! Skipping.');
             return;
         }
-        if (filesize($fI['ID_absFile']) >= $this->maxFileSize) {
-            $this->error($fI['ID_absFile'] . ' was larger (' . GeneralUtility::formatSize(filesize($fI['ID_absFile'])) . ') than the maxFileSize (' . GeneralUtility::formatSize($this->maxFileSize) . ')! Skipping.');
-            return;
-        }
         $fileInfo = stat($fI['ID_absFile']);
         $fileRec = [];
         $fileRec['filesize'] = $fileInfo['size'];
index b524344..d508fcb 100644 (file)
                        <trans-unit id="makesavefo_fileFormat">
                                <source>File format:</source>
                        </trans-unit>
-                       <trans-unit id="makesavefo_maxSizeOfFiles">
-                               <source>Max size of files to include (kb):</source>
-                       </trans-unit>
                        <trans-unit id="makesavefo_filenameSavedInS">
                                <source>Filename (saved in "%s"):</source>
                        </trans-unit>
index 79562c3..d0e05f2 100644 (file)
        <f:form.select class="form-control" name="tx_impexp[filetype]" options="{filetypeSelectOptions}" value="{inData.filetype}" />
 </div>
 <div class="form-group">
-       <label for="impexp-maxfilesize"><f:translate key="makesavefo_maxSizeOfFiles" /></label>
-       <f:form.textfield class="form-control" name="tx_impexp[maxFileSize]" id="impexp-maxfilesize" value="{inData.maxFileSize}" />
-</div>
-<div class="form-group">
        <label for="impexp-filename"><f:translate key="makesavefo_filenameSavedInS" arguments="{0: saveFolder}" /></label>
        <f:form.textfield class="form-control" name="tx_impexp[filename]" id="impexp-filename" value="{inData.filename}" />
 </div>
index fb001f0..75185a8 100644 (file)
@@ -311,4 +311,9 @@ return [
             'Deprecation-83273-PublicPropertiesOfTemplateService.rst',
         ],
     ],
+    'TYPO3\CMS\Impexp\Export->maxFileSize' => [
+        'restFiles' => [
+            'Deprecation-83596-ImpexpRemovedMaxFileSizeRestriction.rst'
+        ],
+    ],
 ];