2012-03-15 27 views
0

我有一个图像(jpeg)存储在我的数据库(SQL Server),当我读它时,我得到了一个十六进制代码。但我无法将其显示给浏览器,它不理解并显示纯代码。从数据库到浏览器的十六进制显示图像

Here's a hex code example

我需要帮助实现这一目标。谢谢大家。

+0

你有十六进制转储...是它如何存储在数据库中?在中,数据库中是否存在原始二进制对象,或者是二进制文件的十六进制文本? – Brad 2012-03-15 19:23:44

+0

它是如何存储在数据库中的? BLOB? – Michal 2012-03-15 19:24:22

回答

3

如果你有PHP> = 5.4,你可以使用hex2bin()

如果不是,您可以使用发布该网页上的替代功能: -

/** 
* Converts the hex representation of data to binary 
* 
* http://www.php.net/manual/en/function.hex2bin.php 
* 
* @param string $str  Hexadecimal representation of data 
* 
* @return string    Returns the binary representation of the given data 
*/ 
public function hex2bin($data) 
{ 
    $bin = ""; 
    $i  = 0; 
    do { 
     $bin .= chr(hexdec($data{$i}.$data{($i + 1)})); 
     $i  += 2; 
    } while ($i < strlen($data)); 
    return $bin; 
} 

然后你只需设置你的头和呼应结果输出到浏览器。

只要看看PHP manual,您会感到惊讶。希望这会对你有用,或者至少让你走上正轨。