2014-07-09 110 views
0

我從MSSQL數據庫中提取數據並嘗試將其轉換爲圖片並在網站上顯示。我嘗試了一些不同的技巧,但似乎沒有任何工作。所以我希望有人能夠幫助我。Varbinary(max)圖片

數據庫圖像太大,在這裏示出,但在這裏是(它是在DB存儲爲varbinary(MAX)))的剪輯:

$古華= 0xFFD8FFE000104A46494600010101004800480000FFE138724578696600004D4D002A00000008000C010E0002000000200000

我認爲它是base64,並試圖以下

> echo '<img src="data:image/jpg;base64,='.base64_encode("0xFFD8FFE000104A46494600010101004800480000FFE1365E4578696600004D4D002A00000008000C010E000200000020000008AA010F000200000005000008CA0110000200000009000008D00112000300000001000100000"); 

<img src="data:image/jpeg;base64,<?php echo base64_encode($kuva);?>" /> 

header("Content-type: image/jpg"); 

echo base64_encode($kuva); 

echo base64_encode($kuva); 
echo base64_decode($kuva); 

但我看不到m找到正確的格式(png,gif,jpg,jpeg),否則我將不得不使用base64以外的其他東西對它進行解碼/編碼。

我知道這個網站上充滿了這個話題,但到目前爲止沒有任何工作。如果有人知道答案,它將會大大降低,或者可以指出一些網站/程序,它們可以真正識別代碼,並允許它被類型化爲可以保存爲圖像的格式。

在此先感謝!

回答

0

實際的問題是PHP數組在讀完整個圖片數據之前沒有空間了。這導致部分代碼被讀入數組(當然不能顯示)。我使用的解決方案是在數據庫服務器端使用一個腳本,該腳本使用t-sql將圖片轉換爲適當的格式並將其寫入另一個表格。

但是,這並沒有解決在顯示整個圖片之前PHP查詢結果用完空間的問題。我試圖將圖片代碼剪切成幾個數組單元格(每個單元格讀取大約50K字符),但PHP上的解析結果不能顯示爲圖像。

如果有人知道如何避免這個問題,隨時寫出答案

相關問題