MS SQL Servere "Binary data" Olarak Resim Kaydetme



Default.aspx Sayfası

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageUpload.aspx.cs" Inherits="ImageUpload" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>MS SQL Veritabanına 100x100 Boyutunda Image Kaydetme Örneği</title>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <asp:FileUpload ID="Upload" runat="server" /><br />

            <asp:Button ID="Button1" runat="server"

                Text="Upload Image" CausesValidation="true" OnClick="Button1_Click" />

            <asp:Label ID="lblMsg" runat="server" Text="" />

        </div>

    </form>

</body>

</html>

 

Default.aspx.cs Sayfası

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Data.SqlClient;

 

public partial class ImageUpload : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        if (Image_Save() > 0)

        {

            lblMsg.Text = " Kayıt işlemi başarılı.";

        }

        else

        {

            lblMsg.Text += " Kayıt işlemi başarısız oldu..";

        }

    }

    /* Aşağıdaki metod ile kullanıcıdan 100x100 boyutlarında bir Image yüklemesini istiyoruz.

     * Yüklenen Image'i veritabanına <Binary data> olarak kaydedebilmek için byte tipine çeviriyoruz.

     * Yuklenen Image'in yüksekli ve genişliğinin 100 pixels olup olmadığını server taraflı kontrolünü yapıyoruz.

     * İstenen şart gerçekleşirse "Yani Image 100x100 boyutunda ise"

     * SQL servere bağlantı açılıyor ve insert işlemi gerçekleştiriliyor.

     * Kullanıcıya uyarı mesajı gösteriyoruz.

     */

    private int Image_Save()

    {

        int succesfull = 0;

        int count = Upload.PostedFile.ContentLength;

        byte[] buffer = new byte[count];

      

        Upload.PostedFile.InputStream.Read(buffer, 0, count);

      

        System.Drawing.Image CheckSize = System.Drawing.Image.FromStream(Upload.PostedFile.InputStream);

        if (CheckSize.Height == 100 && CheckSize.Width == 100)

        {

            using (SqlConnection cn = new SqlConnection("server=localhost;database=Test;uid=sa;pwd=123"))

            {

                try

                {

                    cn.Open();

                    SqlCommand cm = new SqlCommand();

                    cm.CommandText = "INSERT INTO UyeImages (UyeImage) VALUES (@UyeImage) SELECT @@IDENTITY";

                    cm.Connection = cn;

                    cm.Parameters.AddWithValue("@UyeImage", buffer);

                    succesfull = Convert.ToInt32(cm.ExecuteScalar());

                    return succesfull;

                }

                catch (Exception ex)

                {

                    lblMsg.Text = ex.Message.ToString();

                    return succesfull;

                }

            }

        }

        return succesfull;

    }

}

 



Puan Ver

 
 

Yorum yapmak istiyorum





Yapılan Yorumlar


Yorum Tarihi Yapılan Yorum
7/20/2009 11:36:03 PM resim olarak değilde normal bir dosyayı kaydetmem gerekiyor ayrıca bu dosya uzerinde değişikliklerde yapabilmeliyim bu dosya kaydetme hakkında daha aqcıklayıcı bilgi paylaşırsabnız coook ii olur.