我遇到了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'];
因此,我只能获得部分图像。
我的意思是它只加载真实图像的第一部分。它似乎只将内容的第一部分插入数据库而不是全部。
如何解决这个问题?
答案 0 :(得分:0)
检查表格结构。可能是列可能未设置为var(max)