php Размер и счетчик скачиваний файла на PHP 

Дата публикации  Дата изменения08.02.13  Комментарии6   Просмотры9880

Курсы

Размер и счетчик скачиваний файла на PHP. MySQL не используется. Благодаря гибкости и удобству использования является хорошим решением в ряде случаев.

A. Блок счетчика и файла, который предлагается к скачиванию и число скачек которого выводится:

1. Создать директорию (expl_dl), в которую поместить предлагаемый для скачивания файл (expl.zip).

2. Создать в этой же директории пустой файл (expl.txt), в котором будет храниться число скачиваний.

3. Создать в этой же директории файл обработчика числа скачиваний (expl.php):

<?php
$f=fopen("expl.txt","a+");
flock($f,LOCK_EX);
$count=fread($f,100);
@$count++;
ftruncate($f,0);
fwrite($f,$count);
fflush($f);
flock($f,LOCK_UN);
fclose($f);
Header("location:expl.zip");
?>

B. Блок определения размера файла:

До <!DOCTYPE>:

<?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, 2);
               return $filesize." GB";   
                
           }
           else
           {
               $filesize = round($filesize, 2);
               return $filesize." MB";   
           }  
            
       }
       else
       {
           $filesize = round($filesize, 2);
           return $filesize." Kb";   
       }
   
   }
   else
   {
       $filesize = round($filesize, 2);
       return $filesize." bytes";   
   }
  
}

?>

C. Блок вывода в браузер:

Между <body></body>:

<a href="expl.php">Скачать файл</a>
<!--выводим ссылку для скачивания--> 
<?php
$file="expl.zip"; // инициализируем переменную определения размера нужным файлом
echo "&nbsp;&nbsp;Размер: <span style=\"color:blue\">".filesize_get($file)."</span> |"; //выводим размер этого файла

$s=file("expl.txt"); // инициализируем переменную файлом, хранящим число скачиваний нужного файла
echo " Скачан: <span style=\"color:red\">$s[0]</span> раз"; //выводим результат
?>

Собственно, синтаксис с выводом $s[0] хромает, хоть и работает: нужно или через включение – {$s[0]}, или через стандарт – echo " Скачан: <span style=\"color:red\">".$s[0]."</span> раз";

Поскольку используется только php, то показания счетчика скачиваний в браузере изменяются при обновлении страницы.

  Размер:  1,94kB | Изменен:  3.02.13 | Загрузок: 404
Бесплатные курсы

Категории

Теги: , , , ,

Оцените материал:

Рейтинг: 7.2/10 (5)


КомментарииКомментарии:

    coder.hol.es /* Админ */

     

    Добавьте в файл .htaccess: AddType application/octet-stream .rar или AddType application/force-download .rar или AddType application/download .rar - а можно и все вместе.


 

Старые →← Новые