ASP.NET ile Dosya yükleme, listeleme ve silme işlemleri

geri

Merhaba arkadaşlar, başlıktan da anlaşıldığı gibi asp.net ile dosya yükleme (file upload), yüklediğimiz dosyaları listeleme (file list) ve listelediğimiz dosyalardan seçileni fiziksel olarak silme işlemini göstermeye çalışacağım. Öncelikle şunu belirtmek istiyorum, bu örneğimizde veritabanı bulunmuyor, yani işlemlerimizi direk klasör içindeki dosyalar ile yapacağız.

Öncelikle yeni açtığımız projemizin içine dosyalar adında bir klasör açıp, bu klasöre yazma izni veriyoruz. İlk önce default.aspxsayfamızın kodlarına bakalım.

[html] <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> <asp:Label runat="server" ID="mesaj"></asp:Label> <asp:Label runat="server" ID="lblyd"></asp:Label> <asp:DropDownList runat="server" ID="ddl"></asp:DropDownList> <asp:LinkButton runat="server" ID="btnsil" Text="Seçilen dosyayı sil !" onclick="btnsil_Click"></asp:LinkButton> [/html]

Şimdide default.aspx.cs kodlarımıza bakalım

[html] using System; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.IO;

public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { yuklenenDosyalar(); } } protected void yuklenenDosyalar() { DirectoryInfo klasor = new DirectoryInfo(MapPath("dosyalar")); ddl.DataSource = klasor.GetFiles(); ddl.DataBind(); lblyd.Text = ddl.Items.Count + " adet yüklenmiş dosya ! "; if (ddl.Items.Count == 0) { ddl.Items.Add("Yüklenmiş dosya bulunmuyor.!"); ddl.Enabled = false; btnsil.Visible = false; } } protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { try { FileUpload1.SaveAs(Server.MapPath(@"dosyalar\" + FileUpload1.FileName)); string uzanti = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); mesaj.Text = "Dosya başarıyla yüklendi ! "; mesaj.Text += "Dosya adı: " + FileUpload1.FileName + " "; mesaj.Text += "Dosya türü: " + FileUpload1.PostedFile.ContentType + " "; mesaj.Text += "Dosya boyutu: " + FileUpload1.PostedFile.ContentLength + "byte "; mesaj.Text += "Dosya uzantısı: " + uzanti + " "; ddl.Enabled = true; yuklenenDosyalar(); } catch (Exception) { mesaj.Text = "Bir hata oluştu ve dosya yüklenemedi ! Muhtemelen ilgili klasörün yazma izni bulunmuyor."; } } else { mesaj.Text = "Lütfen dosya seçiniz !"; } } protected void btnsil_Click(object sender, EventArgs e) { File.Delete(MapPath("dosyalar/"+ddl.SelectedValue)); mesaj.Text = ddl.SelectedValue + " Dosyası başarıyla silindi !"; yuklenenDosyalar(); } } [/html]

Görüldüğü üzere dosyaları yüklemek, listelemek ve silmek gerçekten çok basit. Burada en genel şekliyle örnek vermeye çalıştım, eğer istersek basit bir if bloğuyla sadece jpeg uzantılı dosyalar veya boyutu 10kb den küçük dosyalar yüklenebilir gibi filtrelerde koyabiliriz. Herkese iyi çalışmalar.

2009-09-07 | asp-net