【问题标题】:Line feed in base64 encoded database64 编码数据中的换行
【发布时间】:2012-05-05 06:19:24
【问题描述】:

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

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

    echo $encoded;

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

【问题讨论】:

  • 实际发送base64编码图像的代码在哪里?
  • echo $encoded;实际发送base64数据
  • 如果在最后的echo 之后直接包含die();\n 还会出现吗?
  • 如果我包含一个 die();生态后, \n 消失。谢谢你的提示!

标签: php web-services base64 httprequest


【解决方案1】:

我不确定是什么原因造成的,但在过去调试过类似的问题后,我认为echo 下方有一些东西导致\n 被输出。

要对此进行测试,请将die(); 直接放在echo 之后。如果我的理论是正确的,您可以保留die();,或者(更好地)在执行流程中将其逐步向下移动,直到找到导致\n 输出的任何原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多