Я столкнулся с той же проблемой некоторое время назад, у меня сработало следующее; положить
while( @ob_end_clean() );
непосредственно перед функциями заголовка:
header("Content-Type: ". $row['p_mime']);
header("Content-Length: ". $row['p_size']);
header("Content-Disposition: inline; filename=".$row["p_name"]);
Расположение содержимого: вложение / встроенное должно быть установлено в соответствии с делами (1. запрос на загрузку / 2. открытие в браузере)
ПРИМЕЧАНИЕ: позаботьтесь о том, чтобы вы не повторяли и не ценили перед функцией заголовка, а чрезмерная осторожность не принесла никакого вреда, отключите все функции перед функцией заголовка, которые, по вашему мнению, потерпят неудачу, или вызовете префикс с предупреждением "@ "символ этих строк кода php.
всего наилучшего:)