2012-06-27 36 views
1

我需要幫助上傳jQuery中的圖像,然後發送到服務器端,以便插入到sql服務器和檢索圖像然後將sql服務器附加到一個div。有沒有辦法做到這一點從客戶端到服務器端,反之亦然?我讀過很多文章,但其中大部分都是純粹的服務器端。任何人都可以給我一個例子嗎?任何幫助將完全讚賞。如何上傳圖像/文件並保存到SQL服務器使用jQuery中的asp.net或反之亦然

+0

您是否使用文件上傳控件上傳文件?你想要它異步保存到數據庫?你爲什麼要將整個圖像保存在一個數據庫中,你應該存儲在本地目錄中,並將路徑保存在db – MSUH

+0

是的,我將使用文件上傳控件。我的計劃是將文件轉換爲數據並將其存儲到服務器。儘可能多的我不想將imagei存儲在本地目錄中。我希望它被存儲在數據庫中。 – ljpv14

回答

0

對於異步文件上傳請參閱This article

1)通過這個,你將能夠獲得圖像字節,你可以將它保存到數據庫,或者你可以將它轉換爲圖像並保存到目錄。

2)一旦保存圖像,你可以從DB字節,在你的頁面,您可以使用

<img id="img" src="GetImage.ashx?ImageId=1"/> 

在GetImage.ashx你可以寫下面的代碼

//byte[] image = Get image bytes from DB using ImageID 
System.Drawing.Image img = byteArrayToImage(image); 

MemoryStream stream = new MemoryStream(); 
img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 
img.Dispose(); 
stream.Position = 0; 
byte[] data = new byte[stream.Length]; 
stream.Read(data, 0, (int)stream.Length); 
stream.Dispose(); 
Response.Clear(); 
Response.ContentType = "image/jpeg"; 
Response.BinaryWrite(data); 

字節轉換功能

public Image byteArrayToImage(byte[] byteArrayIn) 
{ 
    MemoryStream ms = new MemoryStream(byteArrayIn); 
    Image returnImage = Image.FromStream(ms); 
    return returnImage; 
} 
+0

我會推薦使用通用處理程序(ashx)而不是webform(aspx)。沒有意義攜帶所有webforms的附加行李只是爲了清除它並以圖像迴應 –

+0

是的,你是正確的它是一個錯字,我已經在我的項目中使用處理程序來處理這個。編輯我的答案 – MSUH

+0

你們可以給我一個例子,我如何處理數據庫中的某個圖像。我一直在練習檢索行並將其填充到數據表中。有了這個解決方案,我如何將檢索到的圖像從數據庫傳遞到通用處理程序進行轉換?對於這個問題,我很抱歉,因爲這是我第一次處理圖片上傳/下載。謝謝! – ljpv14

相關問題