Merge pull request #8023 from flyser/master
Fix setting the max-upload-size for really large values.
This commit is contained in:
commit
623161b9a9
|
@ -279,9 +279,7 @@ class OC_Files {
|
||||||
return false;
|
return false;
|
||||||
$size -= 1;
|
$size -= 1;
|
||||||
} else {
|
} else {
|
||||||
$size = OC_Helper::humanFileSize($size);
|
$size = OC_Helper::phpFileSize($size);
|
||||||
$size = substr($size, 0, -1); //strip the B
|
|
||||||
$size = str_replace(' ', '', $size); //remove the space between the size and the postfix
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//don't allow user to break his config -- broken or malicious size input
|
//don't allow user to break his config -- broken or malicious size input
|
||||||
|
|
|
@ -305,6 +305,32 @@ class OC_Helper {
|
||||||
return "$bytes PB";
|
return "$bytes PB";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Make a php file size
|
||||||
|
* @param int $bytes file size in bytes
|
||||||
|
* @return string a php parseable file size
|
||||||
|
*
|
||||||
|
* Makes 2048 to 2k and 2^41 to 2048G
|
||||||
|
*/
|
||||||
|
public static function phpFileSize($bytes) {
|
||||||
|
if ($bytes < 0) {
|
||||||
|
return "?";
|
||||||
|
}
|
||||||
|
if ($bytes < 1024) {
|
||||||
|
return $bytes . "B";
|
||||||
|
}
|
||||||
|
$bytes = round($bytes / 1024, 1);
|
||||||
|
if ($bytes < 1024) {
|
||||||
|
return $bytes . "K";
|
||||||
|
}
|
||||||
|
$bytes = round($bytes / 1024, 1);
|
||||||
|
if ($bytes < 1024) {
|
||||||
|
return $bytes . "M";
|
||||||
|
}
|
||||||
|
$bytes = round($bytes / 1024, 1);
|
||||||
|
return $bytes . "G";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Make a computer file size
|
* @brief Make a computer file size
|
||||||
* @param string $str file size in human readable format
|
* @param string $str file size in human readable format
|
||||||
|
|
|
@ -30,6 +30,28 @@ class Test_Helper extends PHPUnit_Framework_TestCase {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider phpFileSizeProvider
|
||||||
|
*/
|
||||||
|
public function testPhpFileSize($expected, $input)
|
||||||
|
{
|
||||||
|
$result = OC_Helper::phpFileSize($input);
|
||||||
|
$this->assertEquals($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function phpFileSizeProvider()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('0B', 0),
|
||||||
|
array('1K', 1024),
|
||||||
|
array('9.5M', 10000000),
|
||||||
|
array('1.3G', 1395864371),
|
||||||
|
array('465.7G', 500000000000),
|
||||||
|
array('465661.3G', 500000000000000),
|
||||||
|
array('465661287.3G', 500000000000000000),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider computerFileSizeProvider
|
* @dataProvider computerFileSizeProvider
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue