Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Помогите вывести размер папки
Сообщения
Plain

Ребят помогите пожалуйста вывести размер папки.вот код на данный момент

      # Получаем количество файлов в папке
      $files = $db->get_row("SELECT COUNT(*) AS all_files, COUNT(CASE WHEN time > UNIX_TIMESTAMP() - 86400 THEN 1 END) AS new_day FROM #__downloads_files WHERE ". ($config['directory_id'] != 0 ? "path_to_file LIKE '%/". $config['directory_id'] ."/%' AND" : "") ." real_name != '' AND status = 'active'");
      return '<img src="'. URL .'modules/downloads/images/'. ($config['directory_id'] == 0 ? 'downloads' : 'default/directory' ) .'.png" alt="" /> <a href="'. URL . 'downloads/'. $config['directory_id'] .'">'. $config['directory_name'] .'</a> <span class="count">['. $files['all_files'] .']</span> '. ($files['new_day'] > 0 ? ' <span class="new">+<a href="'. a_url('downloads/list_files', 'action=new_files&amp;directory_id='. $config['directory_id']) .'">'. $files['new_day'] .' NEW</a></span>' : '') .'<br />';

Выглядит так примерно:
ЗАГРУЗКИ [2984] +45 NEW

Дайте пожалуйста код функции

и попроавьте мой код так чтобы выводилось так:
ЗАГРУЗКИ [2984] +45 NEW 1.7Gb

Выручайте пожалуйста!

09 Авг 2012, 9:44
Okula

ТынТыгыдын, для того чтобы узнать общий вес папки с файлами (с вложенными папками) могу предложить данную функцию:
http://dzwap.ru/code/1
добавлено спустя 58 секунд:
Выведет значение в килобайтах.

09 Авг 2012, 10:03
Plain

да функций нашёл много только не понимаю где папку прописывать и как валидно применить в моём коде..так как он не стандартный tpl для меня это новое поэтому попросил помощи поправить как надо код и функию подходящую чтобы не в килобайтах а в Мб и Гб выводилось

09 Авг 2012, 10:16
Fuelen

ТынТыгыдын, тебе нужно с базы посчитать суму размеров всех файлов. покажи структуру таблицы

09 Авг 2012, 10:34
Okula

Если размер файлов записан в БД то это ещё проще. Достаточно просто подсчитать общее кол-во функцией SUM()

09 Авг 2012, 10:37
Plain

Okula, в таблице есть столбик filesize

09 Авг 2012, 10:42
Fuelen

ТынТыгыдын пишет:
"Okula, в таблице есть столбик filesize"

SELECT COUNT(*) AS all_files,
замени на
SELECT COUNT(*) AS all_files, SUM(`filesize`) as `size`,

потом $files['size'] - размер файлов в байтах. Вот тебе и функция форматирования с байтов в кб, мб,...
[php:1:e26f38ab06]

function format_size($size) {
if ($size == 0) return 0;
$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i];
}
[/php:1:e26f38ab06]

09 Авг 2012, 10:49
Plain

Fuelen, всё сделал но выводит размер файлов просто большим числом.не преобразует в вид 1.7Гб. функцию вписал вывожу $files['size']
добавлено спустя 39 минут:
Fuelen, Разобрался)Спасибо тебе большое!

09 Авг 2012, 11:51
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.