2013-09-22 33 views
1

我有一个jpg blob存储在外部数据库中,我正在寻找通过php显示图像。问题是每当我将Content-Type设置为image/jpeg并回显blob时,浏览到它时就会看到破碎的图像图标。PHP:从二进制显示JPG

我试图通过崇高从头开始文件,并将其保存为十六进制文件,因此我知道数据是有效的。

我试过让脚本创建一个文件,但它设置了charset=us-ascii,所以它不会被视为图像文件。

有没有人有任何经验的原始图像二进制文件?任何人都知道我可以如何显示图像,甚至将它保存到文件中?

在此先感谢。

P.S.我会提供二进制文件,但它太大而无法放在这里。

编辑:(添加一些代码)

<?php 
header('Content-Type: image/jpeg;'); 

$data = 'some long string of hex'; 


// tried echoing it directly.. 
echo $data; 

// and writing to a file... 
file_put_contents('test.jpg', $data); 
?> 
+0

显示我们的代码。 – 2013-09-22 23:10:02

+0

@Dagon完成...不知道有多少帮助。 –

回答

1

继续研究后,我发现这个职位PHP: create file from an HEX string

用下面的代码我固定的问题。

<?php 
header('Content-Type: image/jpeg;'); 

$data = 'The hex data'; 

$data = pack('H*',$data); 

$im = imagecreatefromstring($data); 

imagejpeg($im); 

?> 
0

尝试$im = imagecreatefromstring($data);输出它通过imagejpeg($im);

+0

刚试过这个,'imagecreatefromstring'返回false –

+0

您可能需要在创建图像之前使用类似'$ data = unpack('H',$ data);'的函数将二进制字符串转换为char字符串。 – Wpigott