]> source.dussan.org Git - nextcloud-server.git/commitdiff
Improve handeling of unlimited max upload size
authorRobin Appelman <icewind@owncloud.com>
Fri, 15 Mar 2013 15:31:35 +0000 (16:31 +0100)
committerRobin Appelman <icewind@owncloud.com>
Fri, 15 Mar 2013 15:31:35 +0000 (16:31 +0100)
apps/files/ajax/upload.php
lib/files/filesystem.php
lib/helper.php

index 5b697777e47cd701f09c4d61d1d7c95dfcb9c8d1..b9eea2fea624fb8a720985e5f26c1295ecb64c3c 100644 (file)
@@ -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)));
index d32e082ade9965f4c1331381424e1e9a3a5413cc..5c3a0cf93e1285d1fc353f10876a55a14d7f5f77 100644 (file)
@@ -30,6 +30,7 @@
 namespace OC\Files;
 
 const FREE_SPACE_UNKNOWN = -2;
+const FREE_SPACE_UNLIMITED = -3;
 
 class Filesystem {
        public static $loaded = false;
index 41985ca57a71478889bfaef774858578746b725d..6ee8a4891647926fea9df98c9f29c00d2de2cb53 100644 (file)
@@ -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){