Вы должны быть абсолютно уверены, что на странице нет других выходных данных, даже начальных или конечных пробелов. Это самая распространенная причина такого рода ошибок. Также отключите вывод ошибок, вместо этого регистрируйте ошибки в файле. Ошибки PHP могут легко привести к повреждению двоичного вывода.
Поиск источника нежелательного вывода будет оптимальным решением, но если вы абсолютно не можете и просто хотите, чтобы он работал, вы можете использовать управление выводом в качестве обходного пути. Вызовите ob_start()
в абсолютном начале вашего скрипта (без предшествующего пробела или другого кода PHP) и ob_end_clean()
в абсолютном конце вашего скрипта. Затем вызовите ob_clean()
в начале функции вывода изображения и вызов ob_flush()
в конце функции.