Skip to content

Commit

Permalink
Fix for file_size_decode() in PHP7.
Browse files Browse the repository at this point in the history
  • Loading branch information
CaMer0n committed Aug 20, 2018
1 parent 34a4f0a commit 1f69d7c
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 23 deletions.
10 changes: 5 additions & 5 deletions e107_admin/prefs.php
Original file line number Diff line number Diff line change
Expand Up @@ -1692,19 +1692,19 @@ function multi_radio($name, $textsVals, $currentval = '')
<table class='table table-striped table-bordered'>
<tr><th>".LAN_TYPE."</th><th>".UPLLAN_33."</th>
";

$fl = e107::getFile();
$data = $fl->getFiletypeLimits();
$data = $fl->getAllowedFileTypes();

foreach($data as $k=>$v)
{
$text .= "<tr><td>".$k."</td>
<td>".$fl->file_size_encode($v)."</td>
</tr>";


}
// $text .= print_a($data,true);
// $text .= print_a($data,true);



Expand Down
42 changes: 24 additions & 18 deletions e107_handlers/file_class.php
Original file line number Diff line number Diff line change
Expand Up @@ -837,47 +837,53 @@ function rmtree($dir)
* @param int $compare - a 'compare' value
* @param string $action - values (gt|lt)
*
* @return int file size value.
* @return int file size value in bytes.
* If the decoded value evaluates to zero, returns the value of $compare
* If $action == 'gt', return the larger of the decoded value and $compare
* If $action == 'lt', return the smaller of the decoded value and $compare
*/
function file_size_decode($source, $compare = 0, $action = '')
{

$source = trim($source);
if (strtolower(substr($source, -1, 1)) == 'b')
$source = substr($source, 0, -1); // Trim a trailing byte indicator
//$mult = 1;
if (strlen($source) && (strtoupper(substr($source, -1, 1)) == 'B'))
$source = substr($source, 0, -1);
if (!$source || is_numeric($source))
$source = strtoupper($source);

list($val, $unit) = preg_split('#(?<=\d)(?=[a-z])#i', $source);

$val = (int) $val;

if(!$source || is_numeric($source))
{
$val = $source;
$val = (int) $source;
}
else
{
$val = substr($source, 0, -1);
switch (substr($source, -1, 1))
switch($unit)
{
case 'T':
$val = $val * 1024;
case 'TB':
$val = $val * 1024 * 1024 * 1024 * 1024;
break;
case 'G':
$val = $val * 1024;
case 'GB':
$val = $val * 1024 * 1024 * 1024;
break;
case 'M':
$val = $val * 1024;
case 'MB':
$val = $val * 1024 * 1024;
break;
case 'K':
case 'k':
case 'KB':
$val = $val * 1024;
break;
break;
}
}
if ($val == 0)
if($val == 0)
{
return $compare;
}

switch ($action)
switch($action)
{
case 'lt':
return min($val, $compare);
Expand All @@ -886,7 +892,7 @@ function file_size_decode($source, $compare = 0, $action = '')
default:
return $val;
}
// return 0;
// return 0;
}

/**
Expand Down

0 comments on commit 1f69d7c

Please sign in to comment.