В случае возникновении ошибки, fpassthru() возвращает FALSE. В противном случае, fpassthru() возвращает число прочитанных символов.
Файловый указатель должен быть действительным и указывать на файл, открытый функциями fopen(), popen(), или fsockopen(). Вам следует вызвать функцию rewind() для установления файлового указателя в начало файла, если вы уже прочитали данные из файла. Файл закрывается, когда функция fpassthru() заканчивает чтение данных.
Если вы просто хотите вывести содержимое файла в выходной буфер вы можете воспользоваться функцией readfile().
Пример кода
<?php
// работа с двоичным файлом
// открытие файла в двоичном режиме
$name = ".\public\dev\img\ok.png";
$fp = fopen($name, 'rb');
// отсылка правильного заголовка
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// вывод рисунка и остановка скрипта
fpassthru($fp);
exit;
?>