make filesize parsing case insensitive

This commit is contained in:
Robin Appelman 2011-12-11 23:33:24 +01:00
parent 9c6d3a83fd
commit 5e711f37ca
1 changed files with 13 additions and 12 deletions

View File

@ -160,24 +160,25 @@ class OC_Helper {
*/ */
public static function computerFileSize( $str ){ public static function computerFileSize( $str ){
$bytes = 0; $bytes = 0;
$str=strtolower($str);
$bytes_array = array( $bytes_array = array(
'B' => 1, 'b' => 1,
'K' => 1024, 'k' => 1024,
'KB' => 1024, 'kb' => 1024,
'MB' => 1024 * 1024, 'mb' => 1024 * 1024,
'M' => 1024 * 1024, 'm' => 1024 * 1024,
'GB' => 1024 * 1024 * 1024, 'gb' => 1024 * 1024 * 1024,
'G' => 1024 * 1024 * 1024, 'g' => 1024 * 1024 * 1024,
'TB' => 1024 * 1024 * 1024 * 1024, 'tb' => 1024 * 1024 * 1024 * 1024,
'T' => 1024 * 1024 * 1024 * 1024, 't' => 1024 * 1024 * 1024 * 1024,
'PB' => 1024 * 1024 * 1024 * 1024 * 1024, 'pb' => 1024 * 1024 * 1024 * 1024 * 1024,
'P' => 1024 * 1024 * 1024 * 1024 * 1024, 'p' => 1024 * 1024 * 1024 * 1024 * 1024,
); );
$bytes = floatval($str); $bytes = floatval($str);
if (preg_match('#([KMGTP]?B?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) { if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
$bytes *= $bytes_array[$matches[1]]; $bytes *= $bytes_array[$matches[1]];
} }