神魂顛倒論壇logo

icon
首頁Microsoft 應用技術區.NET / Visual Studio → [C#]上傳圖片到資料庫

雷射溶脂 | 瘦小腹 | 植髮 | 眼袋 | 玻尿酸 | 電波拉皮 | Flash | 購物車 | Flash Player 11.2 | 豐胸 |

下一主題 上一主題


[C#]上傳圖片到資料庫


[C#]上傳圖片到資料庫 簡版






[C#]上傳圖片到資料庫

網路上看到的,紀錄一下

一.上傳圖片到資料庫
///<summary>
/// 上傳圖片
/// </summary>
private void UploadFile()
{
    ///得到用戶要上傳的檔案名
    string strFilePathName = loFile.PostedFile.FileName;
    string strFileName = Path.GetFileName(strFilePathName);
    int FileLength = loFile.PostedFile.ContentLength;

    if (FileLength<=0)
        return;

     ///上傳文件
    try
    {
       
        ///圖像檔臨時儲存Byte陣列
        Byte[] FileByteArray = new Byte[FileLength];

        ///建立資料流程對像
        Stream StreamObject = loFile.PostedFile.InputStream;

        ///讀取圖像檔資料,FileByteArray為資料儲存體,0為資料指標位置、FileLnegth為資料長度
        StreamObject.Read(FileByteArray,0,FileLength);

        ///建立SQL Server鏈結
        string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
        SqlConnection Con = new SqlConnection(strCon);
        String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
        SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
        CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
        CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = loFile.PostedFile.ContentType; //記錄檔類型
        
        ///把其他單表資料記錄上傳
        CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = tbDescription.Text;
        
        ///記錄檔長度,讀取時使用
        CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = FileLength;
        Con.Open();
        CmdObj.ExecuteNonQuery(); 
        Con.Close();

        ///跳轉頁面
        Response.Redirect("ShowAll.aspx");
    }
    catch(Exception ex)
    {
        throw ex;
    }
}

二.從資料庫中讀取圖片
///<summary>
/// 顯示圖片
/// </summary>
private void ShowImages()
 {
    ///ID為圖片ID
    int ImgID = Convert.ToInt32(Request.QueryString["ID"]);  
    
    ///建立資料庫連接
    string strCon = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
    SqlConnection Con = new SqlConnection(strCon);
    String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
    SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
    CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
    
    Con.Open();
    SqlDataReader SqlReader = CmdObj.ExecuteReader();
    SqlReader.Read();

    ///設定輸出檔類型
    Response.ContentType = (string)SqlReader["ImageContentType"];
    
    ///輸出圖像檔二進位數字制
    Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]); 
    Response.End();

    Con.Close();    
}

 



購物車 | 回到頂部
Icon
網路的事情,讓網路解決

[ 逛網路就像是在探險 ]

    神 魂 顛 倒 T W G

http://bbs.flash2u.com.tw

http://tw.myblog.yahoo.com/flash2u-twg

http://flash-silverlight.blogspot.com/

http://flash2u.spaces.live.com/?_c02_owner=1
下一主題 上一主題