将大文件作为varbinary上传并保存到数据库中

时间:2013-05-06 15:34:26

标签: php sql-server

我遇到了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'];

因此,我只能获得部分图像。

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

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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