From 32b8fd8fb7a0deb1461820e6dcfdb6a0114ff980 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 15 Mar 2013 16:31:35 +0100 Subject: [PATCH] Improve handeling of unlimited max upload size --- apps/files/ajax/upload.php | 2 +- lib/files/filesystem.php | 1 + lib/helper.php | 8 +++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 5b697777e47..b9eea2fea62 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -47,7 +47,7 @@ $totalSize = 0; foreach ($files['size'] as $size) { $totalSize += $size; } -if ($totalSize > $maxUploadFilesize) { +if ($maxUploadFilesize >= 0 and $totalSize > $maxUploadFilesize) { OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'), 'uploadMaxFilesize' => $maxUploadFilesize, 'maxHumanFilesize' => $maxHumanFilesize))); diff --git a/lib/files/filesystem.php b/lib/files/filesystem.php index d32e082ade9..5c3a0cf93e1 100644 --- a/lib/files/filesystem.php +++ b/lib/files/filesystem.php @@ -30,6 +30,7 @@ namespace OC\Files; const FREE_SPACE_UNKNOWN = -2; +const FREE_SPACE_UNLIMITED = -3; class Filesystem { public static $loaded = false; diff --git a/lib/helper.php b/lib/helper.php index 41985ca57a7..6ee8a489164 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -764,7 +764,13 @@ class OC_Helper { public static function maxUploadFilesize($dir) { $upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize')); $post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size')); - $maxUploadFilesize = min($upload_max_filesize, $post_max_size); + if ($upload_max_filesize === 0 and $post_max_size === 0) { + $maxUploadFilesize = \OC\Files\FREE_SPACE_UNLIMITED; + } elseif ($upload_max_filesize === 0 or $post_max_size === 0) { + $maxUploadFilesize = max($upload_max_filesize, $post_max_size); //only the non 0 value counts + } else { + $maxUploadFilesize = min($upload_max_filesize, $post_max_size); + } $freeSpace = \OC\Files\Filesystem::free_space($dir); if($freeSpace !== \OC\Files\FREE_SPACE_UNKNOWN){