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

我正在尝试检索存储在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类型
> IndivNdx:smallint类型
> UserImage:图像类型

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

最佳答案 您的列InetDb.dbo.IndivImages的数据类型大小可能太短.

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

也许this可以帮到你?

另外,将数据存储在数据库中并不是最好的选择,特别是在每个数据库限制为10GB(我认为?)的SQL服务器中.

点赞