Excel,Word,Pdf,Image Dosyalarını Veritabanına Kaydetme

Merhaba arkadaşlar,bu makalemizde Excel, Word, Pdf, Image dosyalarını Sql veritabanımıza binary formatında kaydedeceğiz. Formunuza 1 adet FileUpload, Button ve Label ekleyin.



Şekil 1

Şekil 2


Şekil 3


Şekil 4


using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data.SqlClient;

using System.IO;

using System.Data;

using System.Drawing.Imaging;

using System.Drawing;

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

{

protected void Page_Load(object sender, EventArgs e)

{

}

private Boolean InsertUpdateData(SqlCommand cmd)

{

string baglan = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\excel.mdf;Integrated Security=True;User Instance=True";

SqlConnection baglanti = new SqlConnection(baglan);

SqlCommand komut = new SqlCommand();

cmd.Connection = baglanti;

try

{

baglanti.Open();

cmd.ExecuteNonQuery();

return true;

}

catch (Exception ex)

{

Response.Write(ex.Message);

return false;

}

finally

{

baglanti.Close();

baglanti.Dispose();

}

}

protected void btnYukle_Click(object sender, EventArgs e)

{

// Dosyayı okuyup byte a çeviriyoruz

string filePath = FileUpload1.PostedFile.FileName;

string filename = Path.GetFileName(filePath);

string ext = Path.GetExtension(filename);

string contenttype = String.Empty;

//dosya uzantılarını tanımlıyoruz.

switch(ext)

{

case ".doc":

contenttype = "application/vnd.ms-word";

break;

case ".docx":

contenttype = "application/vnd.ms-word";

break;

case ".xls":

contenttype = "application/vnd.ms-excel";

break;

case ".xlsx":

contenttype = "application/vnd.ms-excel";

break;

case ".jpg":

contenttype = "image/jpg";

break;

case ".png":

contenttype = "image/png";

break;

case ".gif":

contenttype = "image/gif";

break;

case ".pdf":

contenttype = "application/pdf";

break;

}

if (contenttype != String.Empty)

{

Stream fs = FileUpload1.PostedFile.InputStream;

BinaryReader br = new BinaryReader(fs);

Byte[] bytes = br.ReadBytes((Int32)fs.Length);

//dosyayı veritabanına giriyoruz.

string strKomut = "insert into bilgi ([Ad], [Tip], [Veri]) values (@Ad, @Tip, @Veri)";

SqlCommand cmd = new SqlCommand(strKomut);

cmd.Parameters.Add("@Ad", SqlDbType.VarChar).Value = filename;

cmd.Parameters.Add("@Tip", SqlDbType.VarChar).Value = contenttype;

cmd.Parameters.Add("@Veri", SqlDbType.Binary).Value = bytes;

InsertUpdateData(cmd);

Label1.ForeColor = System.Drawing.Color.Green;

Label1.Text = "Dosya Yüklendi.";

}

else

{

Label1.ForeColor = System.Drawing.Color.Red;

Label1.Text = "Dosya formatı tanımlı değil. Lütfen Image/Word/PDF/Excel formatında yükleme yapın!";

}

}

}

Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek dileğiyle. Hoşçakalın. Bahadır ŞAHİN

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

3 comments:

Sedat PULAT dedi ki...

dostum peki bunları gridview de görüntüleyi nasıl indirebiliriz?

yerkan54 dedi ki...

Hocam Mrb,Anlatımınız için tesekkurler asp.nette yeniyimde bi kac sorum olacaktı. Veri tabanımı olusturdum sayfaya exel,word,pdf,rar dosyalarından herhangi birisini kullanıcı eklicek bi turlu yapamadım kodları gonderiyorum bakabilirseniz cok sevinirim...


protected void btnEkle_Click(object sender, EventArgs e)
{

if (fuDosya.HasFile)
{
fuDosya.SaveAs(Server.MapPath("~/Dosyalar/")+fuDosya.FileName);



}

int Onay, Vitrin;
Onay = 0;
Vitrin = 0;

if (chcOnay.Checked == true)
{
Onay = 1;
}

if (chcVitrin.Checked == true)
{
Vitrin = 1;
}

SqlConnection baglanti = system.baglan();
SqlCommand cmdKaydet = new SqlCommand();
cmdKaydet.Connection = baglanti;
cmdKaydet.CommandType = CommandType.StoredProcedure;
cmdKaydet.CommandText = "sp_DuyuruEkle";
cmdKaydet.Parameters.Add("DuyuruAdi", txtBaslik.Text);
cmdKaydet.Parameters.Add("Ozet", txtOzet.Text);
cmdKaydet.Parameters.Add("Detay", txtDetay.Content);
cmdKaydet.Parameters.Add("EklenmeTarihi", DateTime.Now.ToString());
cmdKaydet.Parameters.Add("EklenenDosya", fuDosya);
cmdKaydet.Parameters.Add("Onay", Onay);
cmdKaydet.Parameters.Add("Vitrin", Vitrin);
cmdKaydet.Parameters.Add("Hit", "1");
cmdKaydet.ExecuteNonQuery();

lblSonuc.Text = "Duyuru Eklendi...";
}
}

şimdiden tesekkurler kolay gelsin...

Unknown dedi ki...

Merhaba bu anlatımınız c# Windows uyuglamasında yapmaya çalıştım.

string filePath = FileUpload1.PostedFile.FileName; bu kodun yerine
string filePath=openfiledialog.FileName; kullandım.

ama
Stream fs = FileUpload1.PostedFile.InputStream; burada takıldım.
FileUpload1.PostedFile.InputStream; bu kodun yerine ne kulllanmmam gerek.

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...