From 4ad2cae8642d21e37b5132e4040ca45d2d66c193 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Tue, 6 Jun 2017 14:28:03 +0100 Subject: [PATCH] FIX: Upload_Validator failed to fetch max size from PHP ini values (fixes #6999) --- filesystem/Upload.php | 2 +- tests/filesystem/UploadTest.php | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/filesystem/Upload.php b/filesystem/Upload.php index e6974186f..9ef532e20 100644 --- a/filesystem/Upload.php +++ b/filesystem/Upload.php @@ -396,7 +396,7 @@ class Upload_Validator { if (empty($this->allowedMaxFileSize)) { // Set default max file sizes if there isn't $fileSize = Config::inst()->get('Upload_Validator', 'default_max_file_size'); - if (isset($fileSize)) { + if (!empty($fileSize)) { $this->setAllowedMaxFileSize($fileSize); } else { // When no default is present, use maximum set by PHP diff --git a/tests/filesystem/UploadTest.php b/tests/filesystem/UploadTest.php index 58faa8e4e..112bb01b8 100644 --- a/tests/filesystem/UploadTest.php +++ b/tests/filesystem/UploadTest.php @@ -134,6 +134,12 @@ class UploadTest extends SapphireTest { } public function testGetAllowedMaxFileSize() { + // Check the max file size defaults to PHP settings + $maxPhpSize = min(File::ini2bytes(ini_get('upload_max_filesize')), File::ini2bytes(ini_get('post_max_size'))); + $v = new UploadTest_Validator(); + $retrievedSize = $v->getAllowedMaxFileSize('[image]'); + $this->assertEquals($maxPhpSize, $retrievedSize, 'Max file size did not default to PHP value'); + // Check the max file size uses the config values $configMaxFileSizes = array( '[image]' => '1k',