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.
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!";
}
}
}