base64 编码数据中的换行符


Line feed in base64 encoded data

在服务器端脚本中,我使用以下PHP代码对图像进行编码:

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

当我通过网络服务读取文件时,它的长度为 9309 字节,这对于 base64 编码数据来说是无效的长度。检查数据,我发现最后一个字节的值是 10 (LF)。现在,在解码数据之前,我正在裁剪Web服务中的最后一个字节。有没有一种干净的方法来避免发送 LF 字符?

我不确定是什么原因造成的,但是在过去调试过类似的问题后,我会假设echo以下有一些东西导致输出'n

要对此进行测试,请直接在echo之后放置一个die();。如果我的理论是正确的,你可以离开die();,或者(更好的)在执行流中逐渐向下移动它,直到找到导致'n输出的任何内容。