Возникла задача - вернуть размер файла, доступного для скачивания. Странно, но штатных средств в PHP я не нашел.
Работаю над очередным WEB-проектом (позже расскажу над каким).
Возникла задача - вернуть размер файла, доступного для скачивания. Странно, но штатных средств в PHP я не нашел. Можно, конечно, поставить какое-нибудь расширение, но тогда могут возникнуть вопросы совместимости между площадками различных хостеров, что нарушает общую концепцию разработки.
Решение очень простое.
В PHP-коде компонента Битрикс можно добавить и использовать следующую функцию:
<?
function filesize_get($file)
{
// проверяем существует ли файл
if(!file_exists($file)) return "Файл отсутствует.";
//определяем размер файла
$filesize = filesize($file);
// Если размер переданного в функцию файла больше 1кб
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// если размер файла больше одного килобайта
// пересчитываем в мегабайтах
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// если размер файла больше одного мегабайта
// пересчитываем в гигабайтах
if($filesize > 1024)
{
$filesize = ($filesize/1024);
$filesize = round($filesize, 1);
return $filesize." ГБ";
}
else
{
$filesize = round($filesize, 1);
return $filesize." MБ";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." Кб";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." байт";
}
}
?>
Функцияя возвращает размер файла в байтах, килобайтах, мегабайтах и тд.
Думаю доработка до Тб не потребуется, ну или Вы справитесь самостоятельно.
На этом все. Спасибо за внимание!
