2013-05-06 1 views
0

PHP와 SQL Server에 문제가 있습니다.큰 파일을 업로드하여 varbinary로 데이터베이스에 저장

나는 varbinary(MAX) 유형으로 데이터베이스에 파일을 저장하려고, 그것은 완벽하게 작동하지만이 결과에서 180K 이상의 파일을 저장하려고하면, 난 단지 이미지의 일부를 얻을 :

을 그 결과

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

, 난 단지 이미지의 일부를 얻을 :

$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 파일에는 다음이 포함되어 있습니다.

실제 이미지의 첫 번째 부분 만로드한다는 의미입니다. 그것은 그것의 모든 부분 대신에 데이터베이스의 내용의 첫 부분 만 삽입하는 것 같습니다.

어떻게 해결할 수 있습니까?

+1

파일을 업로드하는 동안 PHP 스크립트가 시간 초과됩니까? – reikyoushin

+0

특히 파일로 저장하는 대신 이미지를 데이터베이스에 저장하는 이유가 있습니까? 대부분의 경우 파일을 일반 파일로 저장하는 것이 데이터베이스에 저장하는 것보다 효율적입니다. –

+0

내가 모든 질문에 1 달러를 썼다면 데이터베이스에 이미지를 저장하는 것에 대해 물었다. . . . – andrewWinn

답변

0

테이블 구조를 확인하십시오. 열이 var (max)로 설정되지 않았을 수 있습니다.

+0

이미지의 열 유형 varbinary (MAX)입니다. –

+0

작은 이미지를 저장할 때 이미지의 크기가 작기 때문에 완벽하게 작동하기 때문에 문제가 유형이라고 생각하지 않습니다. –

관련 문제