Lamp / Cakephp:流式传输图像:二进制0x00替换为0x20

时间:2009-09-16 19:16:04

标签: php cakephp null lamp binary-data

我正在尝试创建一个脚本,将图像从数据库中拉出并显示给用户,由<img src="viewImage/someImageName">

调用

但我遇到的问题是当显示图像时,所有Null(0x00)都被0x20替换,我不明白为什么。数据库中的数据显示它是空值,但在某处它变为0x20s。

有没有人有任何想法?有什么我想念的吗?

以下是我正在使用的代码:

$data = $this->Image->read(NULL, $userId);
header("Content-Type: image/jpeg");
echo($data['image']);
die;

我不认为它与代码有任何关系,因为你可以看到没有错误的地方。我可以将二进制内容转储出去,但它还没有被篡改过。

堆栈或cakephp有什么想法吗?

更新: 我注意到在流的开头有一个空间,我正试图追踪它,这可能是问题吗?

2 个答案:

答案 0 :(得分:0)

是的,一路走来的东西吓坏了(因为OMG无效,如果有什么东西认为它们是字符串终止符)并用空格替换它们。我怀疑CakePHP,但还不太确定是否可以说j'accuse。尝试:

header('Transfer-Encoding-Type: base64');

并查看是否能说服不管是什么,只留下数据。

答案 1 :(得分:0)

我在某个地方的文件中有一个迷路空间,跟踪很有趣:) 我想这会切换堆栈中某些东西的模式并破坏文件