Varbinary(最大)到图片

时间:2014-07-09 12:46:26

标签: php image varbinarymax

我从MSSQL数据库中获取数据并尝试将其转换为图片并在网站上显示。我尝试了一些不同的技巧,但似乎都没有。所以我希望有人能够帮助我。

数据库图像太大而无法在此处显示,但这里是一个剪辑(它在DB中存储为varbinary(MAX)):

  

$ kuva = 0xFFD8FFE000104A46494600010101004800480000FFE138724578696600004D4D002A00000008000C010E0002000000200000

我认为它是base64并尝试了以下

> echo '<img src="data:image/jpg;base64,='.base64_encode("0xFFD8FFE000104A46494600010101004800480000FFE1365E4578696600004D4D002A00000008000C010E000200000020000008AA010F000200000005000008CA0110000200000009000008D00112000300000001000100000");

<img src="data:image/jpeg;base64,<?php echo base64_encode($kuva);?>" />

header("Content-type: image/jpg");

echo base64_encode($kuva);

echo base64_encode($kuva);
echo base64_decode($kuva);

但是,我似乎无法找到正确的格式(png,gif,jpg,jpeg),或者我必须使用除base64之外的其他内容对其进行解码/编码。

我知道这个网站上有很多关于这个主题的内容,但到目前为止还没有任何效果。如果有人知道答案,那将是非常苛刻的,或者可以指出一些可以实际识别代码的网站/程序,并允许将其类型变为可以保存为图像的格式。

提前致谢!

1 个答案:

答案 0 :(得分:0)

实际问题是PHP数组在读取整个图像数据之前耗尽了空间。这导致部分代码被读取到数组(当然不能显示)。我使用的解决方案是在数据库服务器端使用一个脚本,它使用t-sql将图片转换为正确的格式并将其写入另一个表。

然而,在整个图片显示之前,这并没有解决PHP查询结果耗尽的问题。我尝试将图片代码切割成几个数组(每个读取大约50K字符),但PHP上的解析结果无法显示为图像。

如果有人知道如何避免这个问题,请随时写下答案