Lamp / Cakephp:画像のストリーミング:バイナリ0x00を0x20に置き換え
-
07-07-2019 - |
質問
データベースから画像を引き出してユーザーに表示するスクリプトを作成しようとしています。これは<img src="viewImage/someImageName">
しかし、私が抱えている問題は、画像が表示されるとき、すべてのヌル(0x00)が0x20に置き換えられることであり、その理由はわかりません。データベース内のデータは、それがヌルであることを示していますが、途中で0x20sに変更されます。
誰にもアイデアはありますか?不足しているものはありますか?
使用しているコードは次のとおりです。
$data = $this->Image->read(NULL, $userId);
header("Content-Type: image/jpeg");
echo($data['image']);
die;
コードに関係があるとは思いませんが、見てわかるようにエラーの場所がないからです。バイナリの内容をダンプできますが、まだ改ざんされていません。
スタックまたはcakephpについて何か考えはありますか?
更新: ストリームの先頭にスペースができていることに気付きましたが、それを追跡しようとしていますが、これが問題なのでしょうか?
解決 2
ファイルのどこかに空きスペースがあったので、追跡するのがとても楽しかったです:) これにより、スタック内の何かのモードが切り替わり、ファイルが破損していると思われます
他のヒント
ええ、途中で何かがおかしくなり(OMGがnullで、何かが文字列ターミネーターだと思ったらどうなるか)、それらをスペースに置き換えています。私はCakePHPを疑っていますが、j'accuseを言うのに十分な確信はありません。試してください:
header('Transfer-Encoding-Type: base64');
そしてそれがあなたのデータをそのままにするためにそれをしていることを納得させるかどうかを確認します。
所属していません StackOverflow