[pear] Новый класс HTTP :: Download

  • Автор темы Автор темы Макс
  • Дата начала Дата начала

Макс

Старожил PHPClub
[pear] Новый класс HTTP :: Download

Упрощает разработку скриптов, позволяющих пользователям скачивать файлы.
Фичи:
- поддерживает докачку
- поддерживает скачивание файлов из БД

Пример использования (взят из документации):
PHP:
 $params = array(
    'file' => '../hidden/download.tgz'),
    'contenttype'           => 'application/x-gzip', 
    'contentdisposition'    => array(HTTP_DOWNLOAD_ATTACHMENT, 'latest.tgz'),
);
$error = HTTP_Download::staticSend($params, false);

Класс лежит на http://pear.php.net/package/HTTP_Download
Документация (конечно на английском) : http://dev.iworks.at/PEAR/HTTP_Download/
 
Попробовал завести, не получается ни докачка ни скачка в несколько потоков.
У кого нить получилось?
 
Может этот класс работает корректно если php установлен как модуль апача?
 
У меня он тоже сразу не заработал. Поизучал код, если в методе _processRequest() код
PHP:
                    } elseif (!$bytes[2]) {
                        $begin  = $bytes[1];
                        $end    = $this->_size;
                        $length = ($end - $begin) + 1;
заменить на
PHP:
                    } elseif (!$bytes[2]) {
                        $begin  = $bytes[1];
                        $end    = $this->_size - 1; // !!!!
                        $length = ($end - $begin) + 1;
то докачка у меня работает, хотя я не сильно тестировал.
Автору класса я уже написал.
 
Valera_
сомневаюсь. Никаких специфических для Апача функций в классе не применяется. Да и в доке написали бы об ограничениях.
 
Maxim Matyukhin, спасибо за анализ кода.
Как раз призадумавался о подобном скрипте.
 
а кто пользовался этим классом?

Кто нибудь пользовался этим классом?
Там столько методов.


Для того что бы организовать скачивание с докачкой, к примеру файла doc/file.mp3

можно пример как использовать этот класс?

Что он выдает когда прочитал весть фаил (что бы понимать что этот фаил больше не давать за просто так на скачку)?

еще написали про ошибку но я её не нашел.


спасибо :)
 
да это я видел, с англецким просто не очень
 
Сверху