从SQL Server检索时丢失某些图像的一部分

时间:2015-06-17 13:38:19

标签: php sql

我正在尝试检索存储在SQL服务器中的图像(实际的图像数据存储在数据库中),但是某些图像中缺少部分图像;例如某些图像的下半部分丢失,而其中一些图像正确显示。

我正在使用的代码如下:

<?php


$serverName = "TESTSERV\SQLEXPRESS";
$database = "test";
$user = "user";
$password="password";
$DSN_general="odbc-test";
$conn_general=odbc_connect($DSN_general, $user, $password);

$sql = "SELECT * FROM InetDb.dbo.IndivImages WHERE IndivNdx = 6 AND TenantNdx = 41";
$sql_run = odbc_exec($conn_general,$sql);
$row = odbc_fetch_array($sql_run);

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


echo $row['UserImage'];

?>
InetDb.dbo.IndivImages 包含以下字段:

  • TanantNdx:tinyint type
  • IndivNdx:smallint type
  • UserImage:图片类型

可能是一个愚蠢的问题,但我找不到这方面的帮助。我知道为什么要面对这个问题吗?

1 个答案:

答案 0 :(得分:2)

您的列InetDb.dbo.IndivImages的数据类型大小可能太短。

大多数图像从上到下渲染,但某些隔行扫描图像类型除外。一些较小的图像设法适合您的数据库而一些不适合,因此二进制数据被截断并且它们在缺少底部的情况下呈现。

也许this可以帮到你?

在数据库中存储图像也不是最好的主意,特别是在每个数据库限制为10GB(我认为?)的SQL服务器中。