ImageDescription列是保存圖像文件的描述字段,ImageSize列是保存圖像文件的長度字段,結構如下:
創建表[dbo]。[圖片商店](
[ImageID] [int] IDENTITY (1,1)不為空,
[ImageData] [image]空,
[image content type][varchar](50)COLLATE Chinese _ PRC _ CI _ AS NULL
[image description][varchar](200)COLLATE Chinese _ PRC _ CI _ AS NULL,
[ImageSize] [int] NULL
)on[primary]text image _ on[primary]在數據庫中保存圖片:使用System
使用系統。收藏;
使用系統。組件模型;
使用系統。數據;
使用系統。繪圖;
使用系統。Web
使用系統。Web . SessionState
使用系統。Web . UI
使用系統。Web . UI.WebControls
使用系統。Web . UI.HtmlControls
使用系統。木衛壹;
使用系統。Data . SqlClient命名空間上傳文件
{
///& lt;總結& gt
UpLoadImage的摘要說明。
///& lt;/summary & gt;
公共類UpLoadImage : System。網頁界面
{
受保護的系統。web . ui . web controls . button btnUpload;
受保護的系統。web . ui . web controls . label txt message;
受保護的系統。web . ui . web controls . textbox txt description;
受保護的系統。web . ui . html controls . html table table 1;
受保護的系統。web . ui . html controls . html input FILE UP _ FILE;//HtmlControl和WebControls控件對象
受保護的Int32文件長度= 0;
私有void Page_Load(對象發送方,系統。EventArgs e)
{
//將初始化頁面的用戶代碼放在這裏
如果(!頁面。IsPostBack)
{
}
}
#區域Web窗體設計器生成的代碼
覆蓋受保護的void OnInit(EventArgs e)
{
//
//CODEGEN:ASP.NET Web窗體設計器需要此調用。
//
initialize component();
基地。on init(e);
}
///& lt;總結& gt
///設計器支持所需的方法-不要修改
///使用代碼編輯器顯示此方法的內容。
///& lt;/summary & gt;
私有void InitializeComponent()
{
this.btnUpload.Click +=新系統。EventHandler(this . btnupload _ Click);
這個。負荷+=新系統。EventHandler(this。page _ Load);}
# end region private void btnUpload _ Click(對象發送方,系統。EventArgs e)
{
HttpPostedFile UpFile = this。UP_FILE。PostedFile//HttpPostedFile對象,用於讀取圖像文件屬性。
FileLength = UpFile。ContentLength//記錄文件長度
嘗試
{
if(文件長度== 0)
{//當文件長度為零時
短信。Text = " & ltb & gt請選擇您要上傳的文件
}
其他
{
Byte[] FileByteArray =新字節[文件長度];//圖像文件臨時存儲字節數組。
Stream StreamObject = UpFile。InputStream//建立數據流對象。
//讀取鏡像文件數據,其中FileByteArray為數據存儲體,0為數據指針位置,FileLnegth為數據長度。
StreamObjectRead(FileByteArray,0,file length);
//建立SQL Server鏈接
SqlConnection Con = new SqlConnection(" uid = sa;pwd =;初始目錄= EE數據源= 127 . 0 . 0 . 1;連接超時= 90”);
string SqlCmd = " INSERT INTO ImageStore(ImageData,ImageContentType,ImageDescription,ImageSize)值(@Image,@ContentType,@ImageDescription,@ ImageSize)";
SqlCommand cmd obj = new SqlCommand(SqlCmd,Con);
CmdObj。參數. Add("@Image ",SqlDbType。二進制,文件長度)。Value = FileByteArray
CmdObj。參數. Add("@ContentType ",SqlDbType。VarChar,50)。Value = UpFile。ContentType//記錄文件類型
//上傳其他單表數據記錄。
CmdObj。參數. Add("@ImageDescription ",SqlDbType。VarChar,200)。值= txtDescription。文本;
//記錄文件長度,讀取時使用。
CmdObj。參數. Add("@ImageSize ",SqlDbType。BigInt,8)。Value = UpFile。ContentLength
con . Open();
CmdObj。ExecuteNonQuery();
con . Close();
短信。Text = " & ltp & gt& ltb & gt好吧!您已經成功上傳了您的圖片
}
}
catch(例外ex)
{
短信。Text = ex。message . ToString();
}
} }
}
讀取數據庫中的圖片數據並顯示:使用系統;
使用系統。收藏;
使用系統。組件模型;
使用系統。數據;
使用系統。繪圖;
使用系統。Web
使用系統。Web . SessionState
使用系統。Web . UI
使用系統。Web . UI.WebControls
使用系統。Web . UI.HtmlControls
使用系統。木衛壹;
使用系統。Data . SqlClient命名空間上傳文件
{
///& lt;總結& gt
ReadImage的摘要描述。
///& lt;/summary & gt;
公共類閱讀圖像:系統。網頁界面
{
私有void Page_Load(對象發送方,系統。EventArgs e)
{
//將初始化頁面的用戶代碼放在這裏
如果(!頁面。IsPostBack)
{
字符串id =請求。query string[" ImgID "];//獲取ID if (id!= " " & amp& ampid!= null & amp& ampid!=字符串。空的)
{
show image(id);
}
}
} #區域Web表單設計器生成的代碼
覆蓋受保護的void OnInit(EventArgs e)
{
//
//CODEGEN:ASP.NET Web窗體設計器需要此調用。
//
initialize component();
基地。on init(e);
}
///& lt;總結& gt
///設計器支持所需的方法-不要修改
///使用代碼編輯器顯示此方法的內容。
///& lt;/summary & gt;
私有void InitializeComponent()
{
這個。負荷+=新系統。EventHandler(this。page _ Load);}
#endregion public void ShowImage(字符串id)
{
int ImgID = Convert。toint 32(id);//ImgID是圖片ID。
//建立數據庫鏈接
SqlConnection Con = new SqlConnection(" uid = sa;pwd =;初始目錄= EE數據源= 127 . 0 . 0 . 1;連接超時= 90”);
string SqlCmd = " SELECT * FROM ImageStore WHERE ImageID = @ ImageID ";
SqlCommand cmd obj = new SqlCommand(SqlCmd,Con);
CmdObj。參數. Add("@ImageID ",SqlDbType。Int)。Value = ImgID
嘗試
{
con . Open();
SqlDataReader SqlReader = CmdObj。ExecuteReader();
SqlReader。read();
回應。content type =(string)SQL reader[" image content type "];//設置輸出文件類型
//輸出圖像文件二進制數系統
回應。output stream . Write((byte[])SQL reader[" ImageData "],0,(int)SQL reader[" ImageSize "]);
回應。end();
con . Close();
}
捕捉
{
回應。寫(" & lt腳本& gtAlert('此圖不存在');& lt/script >);
返回;
} }
}
}