]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
[MEDIA][CORE] Add common function for converting a string with a size unit to an...
authorMiguel Dantas <biodantasgs@gmail.com>
Sat, 15 Jun 2019 14:21:05 +0000 (15:21 +0100)
committerDiogo Cordeiro <diogo@fc.up.pt>
Sat, 3 Aug 2019 16:31:39 +0000 (17:31 +0100)
lib/default.php
lib/framework.php
lib/mediafile.php
lib/util.php

index c73f8fccd2727974a4098fb34f892c5308ffebe5..754d03aa6f33bdc3626bbafdb5748919ae177713 100644 (file)
@@ -266,7 +266,7 @@ $default =
                                 'video/quicktime'   => 'mov',
                                 'video/webm'        => 'webm',
                                 ),
-              'file_quota' => 5000000,
+              'file_quota' => common_get_preferred_php_upload_limit(),
               'user_quota' => 50000000,
               'monthly_quota' => 15000000,
               'uploads' => true,
index bd7693f5d7f4331178b8633a6e1456c4f17de8cd..77e1b19076116f14cd3620f31c8d5ba09f4b60d2 100644 (file)
@@ -32,7 +32,7 @@ defined('GNUSOCIAL') || die();
 define('GNUSOCIAL_ENGINE', 'GNU social');
 define('GNUSOCIAL_ENGINE_URL', 'https://www.gnu.org/software/social/');
 
-define('GNUSOCIAL_BASE_VERSION', '1.21.2');
+define('GNUSOCIAL_BASE_VERSION', '1.21.3');
 define('GNUSOCIAL_LIFECYCLE', 'dev'); // 'dev', 'alpha[0-9]+', 'beta[0-9]+', 'rc[0-9]+', 'release'
 
 define('GNUSOCIAL_VERSION', GNUSOCIAL_BASE_VERSION . '-' . GNUSOCIAL_LIFECYCLE);
index 4dc75a71a9ca047c5d70fef41733714147fe33ba..e429ec7f91723f993873f4f9df6150e10845803c 100644 (file)
@@ -268,35 +268,9 @@ class MediaFile
     /**
      * The maximum allowed file size, as an int
      */
-    public static function maxFileSizeInt()
+    public static function maxFileSizeInt() : int
     {
-        return min(
-            self::sizeStrToInt(ini_get('post_max_size')),
-            self::sizeStrToInt(ini_get('upload_max_filesize')),
-            self::sizeStrToInt(ini_get('memory_limit'))
-        );
-    }
-
-    /**
-     * Convert a string representing a file size (with units), to an int
-     * @param $str
-     * @return bool|int|string
-     */
-    public static function sizeStrToInt($str)
-    {
-        $unit = substr($str, -1);
-        $num = substr($str, 0, -1);
-        switch (strtoupper($unit)) {
-        case 'G':
-            $num *= 1024;
-            // no break
-        case 'M':
-            $num *= 1024;
-            // no break
-        case 'K':
-            $num *= 1024;
-        }
-        return $num;
+        return common_config('attachments', 'file_quota');
     }
 
     /**
index 45d5b2b8f226a4ecc91da16f8f6efc7ab5f6907c..d0131be2ae0372b85fdfd9c4dc2490a3857ca040 100644 (file)
@@ -2649,6 +2649,54 @@ function common_strip_html($html, $trim=true, $save_whitespace=false)
     return $trim ? trim($text) : $text;
 }
 
+/**
+ * An internal helper function that converts a $size from php.ini for
+ * file size limit from the 'human-readable' shorthand into a int. If
+ * $size is empty (the value is not set in php.ini), returns a default
+ * value (5000000)
+ *
+ * @param string|bool $size
+ * @return int the php.ini upload limit in machine-readable format
+ */
+function _common_size_str_to_int($size) : int
+{
+    if (empty($size)) {
+        return 5000000;
+    }
+
+    $suffix = substr($size, -1);
+    $size   = substr($size, 0, -1);
+    switch (strtoupper($suffix)) {
+    case 'P':
+        $size *= 1024;
+        // no break
+    case 'T':
+        $size *= 1024;
+        // no break
+    case 'G':
+        $size *= 1024;
+        // no break
+    case 'M':
+        $size *= 1024;
+        // no break
+    case 'K':
+        $size *= 1024;
+        break;
+    }
+    return $size;
+}
+
+/**
+ * Uses `_common_size_str_to_int()` to find the smallest value for uploads in php.ini
+ *
+ * @returns int
+ */
+function common_get_preferred_php_upload_limit() {
+    return min(_common_size_str_to_int(ini_get('post_max_size')),
+               _common_size_str_to_int(ini_get('upload_max_filesize')),
+               _common_size_str_to_int(ini_get('memory_limit')));
+}
+
 function html_sprintf()
 {
     $args = func_get_args();