我正在尝试检索存储在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 包含以下字段:
可能是一个愚蠢的问题,但我找不到这方面的帮助。我知道为什么要面对这个问题吗?
答案 0 :(得分:2)
您的列InetDb.dbo.IndivImages的数据类型大小可能太短。
大多数图像从上到下渲染,但某些隔行扫描图像类型除外。一些较小的图像设法适合您的数据库而一些不适合,因此二进制数据被截断并且它们在缺少底部的情况下呈现。
也许this可以帮到你?
在数据库中存储图像也不是最好的主意,特别是在每个数据库限制为10GB(我认为?)的SQL服务器中。