我嘗試顯示存儲在數據庫中的圖像。我用從數據庫讀取圖像或向數據庫寫入圖像
$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(最大值)
請讓我們不討論羯羊是合理的在數據庫存儲BLOB :) :)
爲什麼要將圖像保存到數據庫中?沒有保存到文件夾並更好地保存路徑到數據庫? –
由於安全原因和php設置,這是不可能的 – alex