diff options
Diffstat (limited to 'lib/helper.php')
-rw-r--r-- | lib/helper.php | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/helper.php b/lib/helper.php index be4e4e52677..91b22e48f89 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -758,4 +758,21 @@ class OC_Helper { } return $str; } + + /** + * @brief calculates the maximum upload size respecting system settings, free space and user quota + * + * @param $dir the current folder where the user currently operates + * @return number of bytes representing + */ + 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); + + $freeSpace = OC_Filesystem::free_space($dir); + $freeSpace = max($freeSpace, 0); + + return min($maxUploadFilesize, $freeSpace); + } } |