以二進制進行存儲和讀取圖片

//存
string ImgFName;
HttpPostedFile UpFile=UP_FILE.PostedFile;
FileLength=UpFile.ContentLength;//記錄文件長度
try
{
if(FileLength==0)
{
cfun.alert(Response,"請選擇要上傳的圖片");
}
else
{
Byte[] FileByteArray = new Byte[FileLength];   //圖象文件臨時儲存Byte數組
Stream StreamObject = UpFile.InputStream;      //建立數據流對像

int pos=UpFile.FileName.LastIndexOf("//");
ImgFName=UpFile.FileName.Substring(pos+1);

StreamObject.Read(FileByteArray,0,FileLength);  
cmd=new SqlCommand("InsImage",con);
cmd.CommandType=CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add(new SqlParameter("@ImageData",SqlDbType.Image)).Value=FileByteArray;
cmd.Parameters.Add(new SqlParameter("@ImageName",SqlDbType.NVarChar)).Value=ImgFName;
cmd.Parameters.Add(new SqlParameter("@ImageExplain",SqlDbType.NVarChar)).Value=txtBody.Text;
cmd.Parameters.Add(new SqlParameter("@ImageGroup",SqlDbType.NVarChar)).Value=txtImgGup.Text;
cmd.Parameters.Add(new SqlParameter("@ImageDate",SqlDbType.NVarChar)).Value=labDate.Text;
cmd.ExecuteNonQuery();
cfun.alert(Response,"上傳成功!","upimage.aspx");
con.Close();
}
}
catch(Exception ex)
{
cfun.alert(Response,"'"+ex.Message+"'");
}

//////////////////////

con=new SqlConnection(ConfigurationSettings.AppSettings["ConStr"]);
SimgId=Request.QueryString["ImgId"].ToString();
Sqlstr="select ImageData from ImageStore where ImgId='"+SimgId+"'";
if(!IsPostBack)
{
con.Open();
cmd=new SqlCommand(Sqlstr,con);
dr=cmd.ExecuteReader();
while(dr.Read())
{
Response.BinaryWrite((byte[])dr["ImageData"]);
}
con.Close();

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/Eray/archive/2007/04/01/1548505.aspx

發佈了28 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章