Как увеличить скорость загрузки при загрузке MP4 видео через скрипт PHP - PullRequest
0 голосов
/ 16 апреля 2011

Я использую скрипт для загрузки видео, но загрузка занимает много времени. Существуют ли какие-либо процессы или другие сценарии, которые могут мне помочь?

// set headers
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: $mtype");
header("Content-Disposition: attachment; filename=\"$asfname\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);

// download
// @readfile($file_path);
$file = @fopen($file_path,"rb");
if ($file) {
  while(!feof($file)) {

    print(fread($file, 1024*100));
    flush();
    if (connection_status()!=0) {
      @fclose($file);
      die();
    }
  }
  @fclose($file);
}

Ответы [ 2 ]

1 голос
/ 16 апреля 2011

Использование функции readfile () (как у вас было изначально) позволит вам буферизовать непосредственно из файла на вывод, а не использовать циклический цикл и печать, как вы это делаете.Итак, почему вы решили сделать этот цикл чанка?

0 голосов
/ 12 октября 2011

Как и выше, readfile () - это один из способов.

Другой, даже более предпочтительный метод зависит от вашего веб-сервера. NginX, Lighttpd, а также модуль для Apache, позволяет передавать на сервер заголовок с путем / именем файла, и он будет отправлять файл непосредственно с самого сервера, поэтому для этого не нужно использовать ресурсы PHP. Если это невозможно, тогда лучше всего использовать readfile (), если вы не можете просто дать кому-то прямой URL-адрес для его загрузки.

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