【问题标题】:PHP: Show JPG from BinaryPHP:从二进制显示 JPG
【发布时间】:2013-09-27 18:48:09
【问题描述】:

我有一个 jpg blob 存储在外部数据库中,我希望通过 php 将其显示为图像。问题是每当我将 Content-Type 设置为 image/jpeg 并回显 blob 时,我在浏览它时会看到损坏的图像图标。

我尝试通过 sublime 从头开始​​制作文件,当我将其保存为十六进制文件时它可以工作,因此我知道数据是有效的。

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

有人对原始图像二进制文件有任何经验吗?有人知道我如何显示图像甚至将其保存到文件中吗?

提前致谢。

附:我会提供二进制文件,但它太大了,不能放在这里。

编辑:(添加了一些代码)

<?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);
?>

【问题讨论】:

  • @Dagon Done... 不知道有多少帮助。

标签: php image binary jpeg blob


【解决方案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);

?>

【讨论】:

    【解决方案2】:

    试试$im = imagecreatefromstring($data);imagejpeg($im);的输出吧

    【讨论】:

    • 在创建图像之前,您可能需要使用$data = unpack('H',$data); 之类的函数将二进制字符串转换为字符字符串。
    猜你喜欢
    • 2013-04-03
    • 2021-04-01
    • 2014-06-12
    • 2011-01-05
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2014-03-11
    相关资源
    最近更新 更多