SQL Server 提供 image 資料類型專門儲存二進位資料(Binary Data),如圖片、文件等。本文示範如何在 ASP.NET 環境下將圖片上傳至資料庫並讀取顯示。
| 欄位名稱 | 資料類型 | 用途 |
|---|---|---|
| ID | Integer (Identity) | 主鍵 |
| IMGTITLE | Varchar(50) | 圖片友善標題 |
| IMGTYPE | Varchar(50) | 圖片 MIME 類型(同 ASP.NET 辨識的 Content Type) |
| IMGDATA | Image | 實際圖片二進位資料 |
<input type="file"> 選取圖片檔案。enctype="multipart/form-data"。// 取得上傳檔案流與資訊
Stream imgDataStream = File1.PostedFile.InputStream;
int imgDataLen = File1.PostedFile.ContentLength;
string imgType = File1.PostedFile.ContentType;
string imgTitle = TextBox1.Text;
// 讀取二進位資料到位元組陣列
byte[] imgData = new byte[imgDataLen];
int n = imgDataStream.Read(imgData, 0, imgDataLen);
// 取得連線字串並建立連線
string connStr = ((NameValueCollection)Context.GetConfig("appSettings"))["connStr"];
SqlConnection conn = new SqlConnection(connStr);
// ... 後續參數化命令寫入資料庫
SqlParameter)避免 SQL 注入,正確處理二進位資料。IMGTYPE 設定 Response.ContentType,透過 Response.BinaryWrite 輸出圖片串流。