PHP snippets

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

Как правильно отдавать большие файлы через fpassthru()

Когда требуется отдать клиенту файл большого размера, 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'); // Открываем файл
fpassthru($f); // Теперь отправляем все содержимое клиенту