Asp.NET FileUpload Çoklu Dosya Seçimi

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.

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.

        <asp:FileUpload AllowMultiple="true" ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

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

Bunlar da hoşunuza gidebilir...

8 Cevaplar

  1. Alperen dedi ki:

    Eline Sağlık

  2. Samet dedi ki:

    Elinize sağlık. Size bir sorum olacak ! Çoklu seçtiğimiz resimlerin kategori altında veritabanına kayıt yaparken bir başlık berlirleyip seçtiğim bütün fotoğraflara yazdırabilir miyim ? Örneğin 30 tane foto seçtim ve bir başlık belirledim Bilgisayar adında ve bu seçtiğim 30 fotoğrafın hepsinin başlığına Bilgisayar yazısını kaydedebilir miyiz ?

  3. isa dedi ki:

    FileUpload ile seçilebilecek çoklu dosya adedini maksimum 5 adet olarak nasıl kısıtlayabiliriz.

    • Gençay dedi ki:

      Gelen koleksiyon değerinin Count özelliğini istediğiniz adet ile kıyaslayarak kontrol etmeniz yeterlidir.
      Örneğin;

      IList<HttpPostedFile> SecilenDosyalar = FileUpload1.PostedFiles;
      if(SecilenDosyalar.Count <= 5)
      {
          ...
      }
      

      gibi…

  4. isa dedi ki:

    Çok teşekkür ederim.

    Peki yüklenecek her bir resim boyutunun 3Mb üzerindeyse kullanıcıya uyarı vermesini olmasını nasıl sağlayabiliriz. Aşağıdaki şekilde yapılda olmuyor.

    if (fileResimYukle.PostedFile.ContentLength < 3145728)//3 mb
    {
    
    }
    
    • Gençay dedi ki:

      Operatörü aşağıdaki gibi “>” olarak değiştirmen yeterli.

      if (fileResimYukle.PostedFile.ContentLength > 3145728)//3 mb
      {
      
      }
      
  5. VOLKAN AKAR dedi ki:

    Bir sorum olacak bu yüklediğimiz resimleri kendi kontrol panelim ile nasıl ekleyebilirim

    @Html.LabelFor(model => model.Image, htmlAttributes: new { @class = “control-label col-md-2” })

    @Html.EditorFor(model => model.Image, new { htmlAttributes = new { @class = “form-control” } })
    @Html.ValidationMessageFor(model => model.Image, “”, new { @class = “text-danger” })

    böyle bir ilan ekleme kodum var ama sadece 1 tane resim ekleyebiliyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.