我遇到了PHP和SQL Server的问题。将大文件上传并保存到数据库中作为varbinary
当我尝试将文件保存到数据库作为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'];
结果,我只得到了图像的一部分。
我的意思是它只加载实际图像的第一部分。它似乎只将内容的第一部分插入数据库而不是全部。
这怎么解决?
上传文件时,您的php脚本超时了吗? – reikyoushin 2013-05-06 15:38:15
是否有任何理由,特别是您将图像存储在数据库中,而不是作为文件?在大多数情况下,将文件存储为普通文件比将其存储在数据库中效率更高。 – 2013-05-06 15:39:48
如果我问了关于将图像存储在数据库中的每个问题都有一美元。 。 。 。 – andrewWinn 2013-05-06 19:44:09