Перевод строки в кодированных данных base64

В серверном скрипте я использую следующий код PHP для кодирования изображения:

    $handle = fopen($imageSrc,'r');
    $file_content = fread($handle,filesize($imageSrc));
    fclose($handle);
    $encoded = base64_encode($file_content);

    echo $encoded;

Когда я читаю файл через веб-сервис, его длина составляет 9309 байт, что является недопустимой длиной для данных в кодировке base64. Изучив данные, я обнаружил, что значение последнего байта равно 10 (LF). Прямо сейчас я обрезаю последний байт в своих веб-сервисах перед декодированием данных. Есть ли чистый способ избежать отправки символа LF?


person NULL    schedule 05.05.2012    source источник
comment
Где код, который фактически отправляет изображение в кодировке base64?   -  person Michael Robinson    schedule 05.05.2012
comment
эхо $ закодировано; фактически отправляет данные base64   -  person NULL    schedule 05.05.2012
comment
Если вы поставите die(); сразу после финального echo, появится ли \n?   -  person Michael Robinson    schedule 07.05.2012
comment
Если я включаю die(); после эко \n исчезает. Спасибо за подсказку!   -  person NULL    schedule 07.05.2012


Ответы (1)


Я не уверен, что вызывает это, но отладив подобные проблемы в прошлом, я бы предположил, что есть что-то ниже echo, вызывающее вывод \n.

Чтобы проверить это, поставьте die(); сразу после echo. Если моя теория верна, вы можете либо просто оставить die();, либо (лучше) перемещать его постепенно вниз в потоке выполнения, пока не найдете то, что вызывает вывод \n.

person Michael Robinson    schedule 07.05.2012