Asp.Net Çoklu Dosya Yükleme

16 Haziran 2015 Salı
0

Asp.NET 4.5 öncesinde, Microsoft ekibine geliştirdikleri FileUpload nesnesi üzerinde birazdaha yaratıcı iş çıkarmalarını umardım.En çok talep ettiğim şey ise, çoklu dosya seçimiydi.Asp.NET 4.5 ile bu özelliğe nihayetinde kavuşmuş olduk.Şimdi gelin FileUpload nesnesinde çoklu dosya seçimi nasıl yapılıyor inceleyelim.

<asp:FileUpload AllowMultiple="true" ID="FileUpload1" runat="server" />

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

 

FileUpload nesnemize çoklu dosya seçimi yapabilmemiz için “AllowMultiple” ve “PostedFiles” isminde iki özellik eklenmiştir.
AllowMultiple = Varsayılan olarak False değerine sahip olan bu özellik, Client tarafından birden çok dosya seçilmesini sağlıyor.
PostedFiles = Seçilen dosyalara bu property üzerinden erişebiliyoruz.
Örnek olarak bir Asp.NET projesine birer tane FileUpload ve Button nesneleri ekleyelim.

Gördüğünüz gibi eklediğimiz FileUpload nesnesinin AllowMultiple özelliği “True” değerine sahip.Yani çoklu dosya seçimine izin verecektir.

Button nesnemizin Click olayına gelerek aşağıdaki kodu yazalım.

protected void Button1_Click(object sender, EventArgs e)

{

    IList<HttpPostedFile> SecilenDosyalar = FileUpload1.PostedFiles;

}

Yukarıdaki kod bloğunu incelerseniz eğer, List<HttpPostedFile> interface i tipinden olan “SecilenDosyalar” isimli koleksiyonumuz da, FileUpload nesnesinden seçilen dosyalar listelenecektir.

Projemizi derleyip çalıştırdığımız zaman, FileUpload nesnemizin açılan penceresinde, CTRL + Left Click kombinasyonunu kullanarak birden çok resim seçebilirsiniz.
FileUploadCokluSecim
Button nesnesine tıklandıktan sonra ise,
FileUploadCokluSecim2

Yukarıdaki ekran görüntüsünden de anlaşıldığı üzere, PostedFiles özelliği üzerinden seçilen bütün resimlere ulaşabiliyoruz.

Eğer seçilen resimleri bir dizine kaydetmek isterseniz aşağıdaki kod bloğunu inceleyiniz.

protected void Button1_Click(object sender, EventArgs e)

{

    IList<HttpPostedFile> SecilenDosyalar = FileUpload1.PostedFiles;

    for (int i = 0; i < SecilenDosyalar.Count; i++)

    {

        FileUpload1.PostedFiles[i].SaveAs(Server.MapPath("~/Resimler/") + FileUpload1.PostedFiles[i].FileName);

    }



}

Faydalanmanız dileğiyle..

İyi çalışmalar..



Yorum yaz