데이터베이스에 저장된 이미지를 표시하려고합니다. 나는 이걸 써 놨어데이터베이스에서 이미지 읽기 및 쓰기
$image = file_get_contents($testPfad);
$dateigroesse = filesize($testPfad);
$arrData = unpack("H*hex", $image);
$data_string = "0x".$arrData['hex'];
$sql = "INSERT INTO EHS.dbo.T_Signaturen (UnterschriftsDateiName,UnterschriftsBild,Dateigroesse,terminID) VALUES (
'".$unterschriftsFileName."',
CONVERT(varbinary(max),'$data_string'),
'".$dateigroesse."',
'384_234')";
echo '<hr>'.$sql;
insert($sql);
이 코드로 나는 이미지를 출력했다.
header("Content-type: image/jpeg");
$query = "SELECT Dateigroesse, CONVERT(varchar(max), UnterschriftsBild) as content_data FROM EHS.dbo.T_Signaturen WHERE ID = '10'";
$result = query($query);
$content = $result[1]["content_data"];
$filesize = $result[1]["Dateigroesse"];
$content = substr ($content, 2); // entfernt 0x
$content = pack("H*", $content);
print $content;
모든 것이 제대로 작동하지만 이미지의 일부만 표시됩니다. 이미지 크기를 20kb에서 2kb로 줄였습니다. 그리고 훨씬 더 많은 정보가 표시되므로 이진 데이터가 잘려나 간 것 같습니다. 데이터베이스 열은
그것을 데이터베이스에 저장 블랍 : :)에 합리적 어떠했는지를 우리가 논의하지 말자주십시오 VARBINARY (최대)이다
왜 이미지를 데이터베이스에 저장합니까? 폴더에 저장하지 않고 경로를 데이터베이스에 저장하는 것이 더 좋습니까? –
안전 이유와 PHP 설정 때문에 가능하지 않습니다. – alex