PHP snippets

Примеры PHP кода

Как правильно отдавать большие файлы частями

Когда требуется отдать клиенту файл большого размера, echo filegetcontents('filename') может вызвать ошибку, поэтому файл нужно отдавать порциями. Этот пример показывает, как это можно сделать.

<?php

$file = 'big_file.mpg';

// Заголовки, которые расскажут браузеру о том, что это за файл
header("Content-type: audio/mpeg");
header("Content-Disposition: attachment; filename=music.mp3");
header("Content-Length: " . filesize($file));

$f = fopen($file, 'rb'); // Открываем файл
while (!feof($f)) { // И пока он не кончится
    echo fread($f, 1024 * 8); // отправляем по кусочкам
}
fclose($f);