Подаване на ред в 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
Ако включа матрица (); след eco \n изчезва. Благодаря ви за подсказката!   -  person NULL    schedule 07.05.2012


Отговори (1)


Не съм сигурен какво причинява това, но след отстраняване на грешки в подобни проблеми в миналото бих предположил, че има нещо под echo, което причинява извеждане на \n.

За да тествате това, поставете die(); директно след echo. Ако теорията ми е вярна, можете или просто да оставите die();, или (по-добре) да го преместите прогресивно надолу в потока на изпълнение, докато откриете какво причинява извеждането на \n.

person Michael Robinson    schedule 07.05.2012