ASP.Net ile download işlemi

  • 11.09.2015
  • M.Tayyip Yetiş
  • ASP.Net

Merhaba, bu yazımızda asp.net ile herhangi bir dosyayı indirme işlemini göstereceğim. Bu işlemi "a" link etiketiyle de yapabilirsiniz bunun için standart şekilde a etiketine href verip extra olarak bir de download ifadesini ekleyebilirsiniz. Fakat bazı durumlarda .net ile dosyalar üzerinde işlemler yapıp sunucu üzerine kaydetmeden dosyayı indirmek isteyebilirsiniz. örneğin; bir resim işleme uygulamasında kullanıcının düzenlediği resmi indirmeden önce kaydetmek eğer güçlü sunucularınız yoksa sıkıntılı olabilir bunun yerine dosyayı dinamik olarak bir değişkende tutup indirmek istediğinizde aşağıdaki işlemleri yapmak daha pratik olacaktır.

Html ile download işlemi

<a href="/images/resim.jpg" download> Dosyayı İndir </a>

Asp.Net ile Download işlemi

string filename = null;
string path = null;
byte[] bts = null;

filename = "folder.png";
path = MapPath("~/Images/" + filename);
bts = System.IO.File.ReadAllBytes(path);
Response.AddHeader("Content-Type", "Application/octet-stream");
Response.AddHeader("Content-Length", bts.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
Response.BinaryWrite(bts);
Response.Flush();
Response.End();

Yukarıdaki kodda dosyanın byte'larını response olarak istemciye gönderiyoruz. normalde html olarak gönderilen cevap "content-type" başlığından anlaşıldığı üzere dosya olarak gönderiliyor tarayıcı da bunu algılayıp indirme işlemini başlatıyor. Herkese kolay gelsin...

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

Yorum Yap

Diğer Makaleler

Etiketler