2012-04-30 50 views
0

美好的一天!在php的圖像字段中查看圖像

任何人都可以幫助我,有一個系統,用戶通過他們的桌面在Web上託管的數據庫中進行註冊,現在我們正在開發此係統的Web界面,然後它在系統中具有某種功能,必須顯示照片用戶。

我在SQL Server中做了普通的SELECT,但是在imagejpeg($ img);它不顯示整個圖片,只是一張圖片。任何人都可以幫我嗎?我正在網上尋找一些教程,他們說這是因爲該領域的大小。如果該字段的類型是(image),並且返回值是十六進制的。

下面我試圖做一個函數和一個朋友的幫助下,但她也沒有工作:

<php 
$id  = (int)$_GET['id']; 
$qryimg = mssql_query(gimage SELECT FROM user WHERE id = {$ id}); 
$resimg = mssql_fetch_array($qryimg); 
$im1 = $resimg['gimage']; 

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

$image=''; 
for($i=2; $i<strlen($im1); $i+=2) 
{ 
    $hex = $im1{$i} . $im1{($i + 1)}; 
    $cod = hexdec($hex); 
    $image .= chr($cod); 
} 
echo $image; 
#echo imagejpeg($image); 
?> 

回答

0

爲什麼不下面的代碼工作?你不能只是迴應圖像。

<php 
$id  = (int)$_GET['id']; 
$qryimg = mssql_query(gimage SELECT FROM user WHERE id = {$ id}); 
$resimg = mssql_fetch_array($qryimg); 
$im1 = $resimg['gimage']; 

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

print $im1; 
exit; 

什麼字段類型是gimage?

+0

你好,謝謝你試圖幫助我。 字段gimage是字段名稱。從而給出一個印刷品$ im1;不正確的直接。不斷彈出一張照片。字段圖像以十六進制4000字節返回一個字符串。 + - 像這樣的例子: 0xFH3H09800000111 ........ – andrewd

+0

你沒有回答我的問題。什麼類型是gimate。從外觀上看,它看起來像是一個VARCHAR或CHAR。它需要是一個BLOB類型。當你打印它時,你不應該得到十六進制數字。如果您無法控制它的存儲方式,那麼這可能不是您的錯,圖像存儲器僅存儲一半圖像。 玩一個較小的圖像。它工作嗎?那麼這是限制你的字段大小。 – dlite922

+0

你好這個字段是IMAGE類型的(SQL SERVER 2008),圖像被正確存儲,因爲我已經嘗試了4個不同的用戶登錄,並且4出現了同樣的問題。我無法更改圖像的閾值,因爲它已經有多個註冊記錄和桌面系統在多個客戶端上運行,而不是重建這些系統:( 我試圖在網上找到某些東西,並且找不到任何關於它,有人說他們不得不把字符串分成幾塊,但我不知道該怎麼辦。 謝謝 – andrewd