Profil sayfası kişiselleştirme ve ComplexType

Başlık biraz karışık oldu sanırım, biraz açayım. Profil sayfası kişiselleştirme dediğim; Twitter, FriendFeed gibi sayfalarda arkaplan resmini, konumunu ve renkleri isteğimize göre düzenleyebiliyoruz, yani profilimizi kişiselleştirebiliyoruz. ComplexType ise ilk konudan bir hayli alakasız aynı zamanda ComplexType olayını anlamak için çok alakalı. En kaba tabirle; modelimizde ki belirli özellekleri kümelediğimiz ve kod yazarken bize çok büyük kolaylık sağlayan bir yaklaşım.

Okumaya devam et Profil sayfası kişiselleştirme ve ComplexType

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

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.

<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>

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

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();
}
}

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.