Php base64编码数据中的换行
在服务器端脚本中,我使用以下PHP代码对图像进行编码:Php base64编码数据中的换行,php,web-services,base64,httprequest,Php,Web Services,Base64,Httprequest,在服务器端脚本中,我使用以下PHP代码对图像进行编码: $handle = fopen($imageSrc,'r'); $file_content = fread($handle,filesize($imageSrc)); fclose($handle); $encoded = base64_encode($file_content); echo $encoded; 当我通过webservice读取文件时,它的长度为9309字节,这对于base64编码
$handle = fopen($imageSrc,'r');
$file_content = fread($handle,filesize($imageSrc));
fclose($handle);
$encoded = base64_encode($file_content);
echo $encoded;
当我通过webservice读取文件时,它的长度为9309字节,这对于base64编码的数据来说是无效的长度。检查数据,我发现最后一个字节的值是10(LF)。现在,在解码数据之前,我正在裁剪Web服务中的最后一个字节。有没有干净的方法避免发送LF字符 我不确定是什么原因导致了这种情况,但在过去调试过类似的问题之后,我会假设在
echo
下面有某种东西导致输出\n
要测试这一点,请放置一个
die()代码>直接在回声之后。如果我的理论是正确的,你可以离开die()代码>,或者(更好)在执行流中逐渐向下移动它,直到找到导致\n
输出的原因。我不确定是什么导致了这一点,但在过去调试过类似的问题后,我会假设echo
下面有某种东西导致\n
输出
要测试这一点,请放置一个die()代码>直接在回声之后。如果我的理论是正确的,你可以离开die()
,或者(更好)在执行流中逐渐向下移动它,直到找到导致输出\n
的原因。实际发送base64编码图像的代码在哪里?echo$encoded;如果包含die(),则实际发送base64数据代码>直接在最后的回显之后,\n
是否仍然出现?如果我包括一个模具();执行eco后,\n将消失。谢谢你的提示!实际发送base64编码图像的代码在哪里?echo$encoded;如果包含die(),则实际发送base64数据代码>直接在最后的回显之后,\n
是否仍然出现?如果我包括一个模具();执行eco后,\n将消失。谢谢你的提示!