Drupal_set_header возвращает ошибку - PullRequest
0 голосов
/ 03 марта 2012

хорошо, когда я пытаюсь выполнить эту подпрограмму, получает ошибку GD:

Function foo ()
{  
    $file_name = 'image1.jpg';
    $type = 'image/jpeg';
    drupal_set_header('Content-Type:'.$type);
    drupal_set_header('Content-Length: ' . filesize($file_name));
    readfile($file_name); 
}

Ошибка:

The image http://192.168.1.190/parsegard/trackback/check/perm?pic=sites/default/files/imagecache/large/content_types/food_nutrition/2470/image1.jpg becuase it contains errors.

1 Ответ

1 голос
/ 03 марта 2012

Вы должны быть абсолютно уверены, что на странице нет других выходных данных, даже начальных или конечных пробелов. Это самая распространенная причина такого рода ошибок. Также отключите вывод ошибок, вместо этого регистрируйте ошибки в файле. Ошибки PHP могут легко привести к повреждению двоичного вывода.

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

...