Ограничение скорости загрузки с помощью PHP - PullRequest
3 голосов
/ 29 января 2012

У меня есть этот код здесь, однако я хочу ограничить скорость, с которой пользователь может загружать, как бы я внедрил это в этот код;

header("Content-type: application/force-download");
    header("Content-Transfer-Encoding: Binary");
    header("Content-length: ".filesize("uploads/$filename"));
    header("Content-disposition: attachment; filename=\"$origname");
    readfile("uploads/$filename");

Спасибо!

Это то, что я пробовал;

$download_rate = 100;

$ origname = get_file_name ($ file [0]);

header("Content-type: application/force-download");
    header("Content-Transfer-Encoding: Binary");
    header("Content-length: ".filesize("uploads/$filename"));
    header("Content-disposition: attachment; filename=\'$origname'");

    $local_file = "uploads/$origname";

// flush content flush ();

// open file stream
$file = fopen($local_file, "r");

while (!feof($file)) {

    // send the current file part to the browser
    print fread($file, round($download_rate * 1024));

    // flush the content to the browser
    flush();

    // sleep one second
    sleep(1);
}

// close file stream
fclose($file);

Почему это не работает?

Ответы [ 3 ]

1 голос
/ 29 января 2012

Если вы попробовали то, что предложил @mugur, возможно, проблема в другом месте.Например, в вашем фрагменте, похоже, у вас отсутствует пропущенная кавычка:

header ("Расположение содержимого: вложение; filename = \" $ origname ");

Полагаю, это должно быть:

header ("Расположение содержимого: вложение; filename = \" $ origname \ "");

1 голос
/ 29 января 2012

Надеюсь, это поможет http://www.jonasjohn.de/snippets/php/dl-speed-limit.htm

0 голосов
/ 29 января 2012

Во время обработки, просто рассчитывайте байты и временные метки.Затем добавьте небольшую паузу, используя usleep.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...