mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-06-02 04:15:05 +02:00
This algorithm does not work for Windows and when "exec" is disabled. But not having this cache size is not a major issue. What is a problem is when calculating the cache size breaks the execution, which must be avoided.
This commit is contained in:
@@ -637,13 +637,17 @@ function get_fs_directory_size($path)
|
||||
$bytestotal = 0;
|
||||
$path = realpath($path);
|
||||
|
||||
if ($path !== false && $path != '' && file_exists($path))
|
||||
if (!function_exists('exec'))
|
||||
{
|
||||
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)) as $object)
|
||||
{
|
||||
$bytestotal += $object->getSize();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@exec('du -sk '.$path, $returnarray);
|
||||
if (is_array($returnarray) and !empty($returnarray[0]) and preg_match('/^(\d+)\s/', $returnarray[0], $matches))
|
||||
{
|
||||
$bytestotal = $matches[1] * 1024;
|
||||
}
|
||||
|
||||
return $bytestotal;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -404,8 +404,8 @@ if (isset($result[0]['SUM(filesize)']))
|
||||
$data_storage['Formats'] = $result[0]['SUM(filesize)'];
|
||||
}
|
||||
|
||||
// PHP 5.5.19 is the oldest version get_fs_directory_size was tested on
|
||||
if (version_compare(PHP_VERSION, '5.5.19') >= 0)
|
||||
// Windows can't execute get_fs_directory_size correctly
|
||||
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')
|
||||
{
|
||||
if (!isset($_SESSION['cachedir_info']) or $_SESSION['cachedir_info']['calculated_on'] < strtotime('5 minutes ago'))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user