0

我遇到了 PHP 和我的 SQL Server 的问题。

当我尝试将文件作为varbinary(MAX)类型保存到数据库中时,它可以完美运行,但是当我尝试在结果中保存 180k 或更大的文件时,我只能得到部分图像:

$handle = @fopen($fileTmpName, 'rb');
if ($handle)
{
    $content = @fread($handle, filesize($fileTmpName));        
    $content = bin2hex($content);
    @fclose($handle);
}
$select = mssql_query("EXEC [DB_Name].[dbo].[Table_Name] @Data = ".$content."");
$result = mssql_fetch_array($select);
$_SESSION['fileContent'] = $result['Data'];

<img src="../applications/framework/images.php" />

image.php文件包含以下内容:

header("Content-type: ".$fileType);
header("Content-Length: ".$fileSize);
header("Content-Disposition: inline; filename=".$fileName);
echo $_SESSION['fileContent'];

结果,我只得到了部分图像。

我的意思是它只加载真实图像的第一部分。它似乎只将内容的第一部分而不是全部插入到数据库中。

如何解决?

4

1 回答 1

0

检查表结构。可能是该列可能未设置为 var(max)

于 2013-05-06T21:02:10.410 回答