Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Скачка файлов... Разовые ссылки...

Сообщения:  [1-10]    [11-20]  [21-26] 

 
 автор: Trianon   (13.06.2007 в 16:03)   письмо автору
 
   для: -=|NickK|=-   (13.06.2007 в 15:57)
 

очепятка - да.
Но не в ней суть.

Касательно blklen/buflen - тут всё чисто.
blklen - размер блока чтения.
buflen - размер прочтенного участка файла.

   
 
 автор: -=|NickK|=-   (13.06.2007 в 15:59)
 
   для: Trianon   (21.05.2007 в 14:43)
 

Чет туплю... Не дочитал до конца...

   
 
 автор: -=|NickK|=-   (13.06.2007 в 15:57)
 
   для: Trianon   (21.05.2007 в 14:43)
 

Да, и еще чередование blklen / buflen )

   
 
 автор: -=|NickK|=-   (13.06.2007 в 15:50)
 
   для: Trianon   (21.05.2007 в 14:43)
 

На первый взгляд:
- Не совпадают имена переменных с именем файла
- очепятка: if($arnge[1] == $size)

   
 
 автор: tAleks   (12.06.2007 в 19:31)   письмо автору
 
   для: kasmanaft   (12.06.2007 в 19:21)
 

"Гипертекстный протокол HTTP" и RFC-2616 это одно и то же?
Просто я думал что это разные вещи....

Если нет, тогда спасибо... два раза... :)

Седня целый день его читаю.... :) Голова уже квадратная... :)

   
 
 автор: kasmanaft   (12.06.2007 в 19:21)   письмо автору
 
   для: tAleks   (12.06.2007 в 19:12)
 

> Дайте пожалуйста ссылку на перевод.
Вам ее уже не раз давали...
Есть и в этой теме, ~10 постов наверх.
("Гипертекстный протокол HTTP")

   
 
 автор: tAleks   (12.06.2007 в 19:12)   письмо автору
 
   для: Trianon   (12.06.2007 в 15:22)
 

>Пример расчитан на человека
> а) прочитавшего разделы 9.2.7, 13.5, 13.36 документа RFC-2616 или его перевода, и

Дайте пожалуйста ссылку на перевод.


> б) представляющего, что делают функции explode, ftell, fpassthru.

Знаю, только то, что написано о них в мануале.

>Кстати, пример, похоже, содержит ошибку.
>Ненамеренно, конечно, так получилось.
>В ближайшее время попытаюсь её исправить.

Жду. Надо позарез...

   
 
 автор: Trianon   (12.06.2007 в 15:22)   письмо автору
 
   для: tAleks   (12.06.2007 в 10:40)
 

Пример расчитан на человека а) прочитавшего разделы 9.2.7, 13.5, 13.36 документа RFC-2616 или его перевода, и б) представляющего, что делают функции explode, ftell, fpassthru.

Кстати, пример, похоже, содержит ошибку.
Ненамеренно, конечно, так получилось.
В ближайшее время попытаюсь её исправить.

   
 
 автор: tAleks   (12.06.2007 в 10:40)   письмо автору
 
   для: Trianon   (21.05.2007 в 14:43)
 

Trianon, не сочтите за труд, пожалуйста, прокоментируйте ваш пример, как для новичков.

   
 
 автор: Trianon   (21.05.2007 в 14:43)   письмо автору
 
   для: Aid   (21.05.2007 в 13:47)
 

Честно скажу, написано только что, и на одном дыхании, так что корректность не проверял.
Но то, что вспомнил - учел.

<?php 

$handle 
fopen($fullname'rb');
fseek($handle0SEEK_END);
$size ftell($handle);

if(isset(
$_SERVER['HTTP_RANGE']))
{
    
$range explode('-'$_SERVER['HTTP_RANGE']);
    if(!
$range[0])$range[0] = 0;
    if(
$range[1]) ++ $range[1];
    else 
$range[1] = $size;
}
else 
$range = array(0$size);
if(
$range[0] < 0$range[0] = 0;
if(
$range[1] > $size$range[1] = $size;

$part_size $range[1]-$range[0];
$range_start $range[1];

if(
$range[0] > || $range[1] < $size)
{
    
$range_stop $range[1]-1;
    
header("206 HTTP/1.0 Partial content");
    
header("Content-Length: $part_size");
    
header("Content-Range: bytes $range_start-$range_stop/$size");
}else
    
header("Content-Length: $size");
header("Accept-Ranges: bytes");
header("Content-Type: application/octet-stream; name=\"$name\"");
header("Content-Disposition: attachment; filename=\"$name\"");

fseek($handle$range_startSEEK_SET);
if(
$arnge[1] == $size)
    
fpassthru($handle);
else
    for(
$blklen 16384$pos $range_start$pos $range[1]; $pos += $buflen)
    {
        if(
$range[1]-$pos $blklen)
            
$blklen intval($range[1]-$pos);
        
$buffer fread($handle$blklen);
        
$buflen strlen($buffer);
        echo 
$buffer;
    }
?>

   

Сообщения:  [1-10]    [11-20]  [21-26] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования