Как правильно организовать хранение файлов в базе данных MySQL (загрузка и выгрузка через PHP)?
Нет правильного способа хранения файлов в БД, потому что хранить файлы в БД не правильно.
Хранить надо пути к файлам, а сами файлы хранить в ФС.
В коде выдачи случайно нет закрывающего пхп тэга? Вдруг после него лишние пробелы?
попробуй еще отправлять заголовок header('Content-Length: ' . $size);
попробуй на всякий случай делать ob_clean перед отдачей, и exit после.
ну а вообще да, не стоит превращать базу в хранилище файлов.