C#'ta dosyayı zip'e çevirme ve ziplenmiş dosyayı VARBINARY tipinde sql de tutma
C# ile bir dosyayı .zip formatına çevirmek için çeşitli dll dosyayları bulunmakta. Buradaki örnekte Ionic DotNetZip kullanıldı. https://dotnetzip.codeplex.com/
protected void DosyaYukleSql()
{
try
{
Guid guId = Guid.NewGuid();
string dosyaAd = System.IO.Path.GetFileName(fileDosya.FileName);
string dosyaUzanti = System.IO.Path.GetExtension(dosyaAd);
dosya = guId + dosyaUzanti; //dosya adını Guid ile belirledik
using (ZipFile zip = new ZipFile())
{
zip.AddEntry(dosya, fileDosya.PostedFile.InputStream);
zip.Save(Server.MapPath("/upload/zip/") + guId + ".zip");
//zipi binary yap
byte[] byteZip = File.ReadAllBytes(Server.MapPath("/upload/zip/") + guId + ".zip");
//veritabanına ekle
VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
islem.DosyaEkle(guId.ToString(), byteZip, kayitId: dosyaKayitId);
}
File.Delete(Server.MapPath("/upload/zip/") + guId + ".zip"); //klasördeki zipli dosyayı sil
}
catch (Exception ex)
{
lblIslemSonuc.Text = ex.Message;
lblIslemSonuc.CssClass = "islemHatali";
lblIslemSonuc.Visible = true;
}
}
SQL'de varbinary tipinde tutulan ziplenmiş dosyayı indirme