asp.net FileUpload 控件上傳文件 以二進制的形式存入數據庫並將圖片顯示出來


圖片上傳事件代碼如下所示:

 1         byte[] binary = upload.FileBytes;
 2             StringBuilder sqlStrSb = new StringBuilder();
 3             sqlStrSb.Append("update info set Thumb=?Imgwhere Id=200");
 4             string mySqlConStr = "Host=localhost; uid=root; pwd=123; DataBase=db";
 5             MySqlConnection mySqlCon = new MySqlConnection(mySqlConStr);
 6             mySqlCon.Open();
 7             MySqlCommand mySqlCom = new MySqlCommand();
 8             mySqlCom.CommandText = sqlStrSb.ToString();
 9             mySqlCom.Connection = mySqlCon;
10             MySqlParameter par = new MySqlParameter("?Img", MySqlDbType.VarBinary);
11             par.Value = binary;
12             mySqlCom.Parameters.Add(par);
13             int afn = mySqlCom.ExecuteNonQuery();
14             mySqlCon.Close();

注:轉為二進制存入數據庫的時候必須使用 MySqlDbType.VarBinary 或者 MySqlDbType.Binary 進行數據類型的限定。

圖片顯示代碼如下所示:

 1             string mySqlConStr = "Host=host;uid=root;pwd=123;DataBase=db;";
 2             string sqlStr = "select ThumbData from info where Id=200;";
 3             MySqlConnection mySqlCon = new MySqlConnection(mySqlConStr);
 4             mySqlCon.Open();
 5             MySqlCommand mySqlComd = new MySqlCommand();
 6             mySqlComd.CommandText = sqlStr;
 7             mySqlComd.Connection = mySqlCon;
 8             MySqlDataAdapter mySqlSda = new MySqlDataAdapter();
 9             mySqlSda.SelectCommand = mySqlComd;
10             DataSet ds = new DataSet();
11             mySqlSda.Fill(ds);
12             if (ds.Tables.Count > 0)
13             {
14                 byte[] dataByte = (byte[])ds.Tables[0].Rows[0][0];
15                 Response.BinaryWrite(dataByte);
16                 Response.Flush();
17                 Response.End();
18             }
19             mySqlCon.Close();

頁面顯示部分:

1         <img src="ShowImage.aspx" />

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM