Asp.net – Çoklu dosya kaydetme / multiple file upload

 

Çoğu kişi çoklu dosya kaydetme (multiple file upload da derler google’da) işini daha hızlı ve görsel olarak daha güzel olan jquery veya benzer şeyler ile çözüyor, ve bana sorarsanız da daha hoş olan bu. Ama benim kısa süre önce yaptığım gibi önceden tek dosya yüklediğiniz bir alana bir anda çoklu özelliği vermeniz gerekiyorsa ve o anda en kısa yoldan bunu çözmeniz gerekiyorsa normal bir formdaki <asp:FileUpload elemanına AllowMultiple=”true” özelliğini dayayıp, code behind tarafına da 3-5 satır ekstra kod yazıp olayı çözebilirsiniz.

Çözersiniz de, bu kodların ne olduğu o anda aklınıza gelmeyebilir, yada yazdığınız kod blogunda atladığınız birşey vardır, veya daha önce hiç yazmamış olabilirsiniz. Bunlar normal ve basit sebepler, çok üstünde durmaya gerek yok, bunları herkes yapıyor.

En başta .aspx tarafındaki blogumuz şu şekilde olmalı;

<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<div>
    <input type="file" id="myfile" multiple="multiple" name="myfile" runat="server" size="100" />
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    <br />
    <asp:Label ID="Span1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>

ve code behind, yani .aspx.cs tarafında, butona basınca gerçekleşecek olaylarımız da (şu anda yüklenen dosyalarını verme işlemini yapıyorum aşağıda, bu bilgilerle istediğiniz gibi devam edersiniz) şu şekilde geliyor;

  protected void Button1_Click(object sender,EventArgs e) {
          string filepath = Server.MapPath("\\Upload");
          HttpFileCollection uploadedFiles = Request.Files;
          Span1.Text = string.Empty;

          for(int i = 0;i < uploadedFiles.Count;i++) {
              HttpPostedFile userPostedFile = uploadedFiles[i];

              try {
                  if (userPostedFile.ContentLength > 0) {
                     Span1.Text += "<u>File #" + (i + 1) +  "</u><br>";
                     Span1.Text += "File Content Type: " +  userPostedFile.ContentType      + "<br>";
                     Span1.Text += "File Size: " + userPostedFile.ContentLength           + "kb<br>";
                     Span1.Text += "File Name: " + userPostedFile.FileName + "<br>";

                     userPostedFile.SaveAs(filepath + "\\" +    Path.GetFileName(userPostedFile.FileName));                  
                     Span1.Text += "Location where saved: " +   filepath + "\\" +   Path.GetFileName(userPostedFile.FileName) + "<p>";
                  }
              } catch(Exception Ex) {
                  Span1.Text += "Error: <br>" + Ex.Message;
              }
           }
        }
    }

İşte bu kadar, devamını getirmek size ve ne istediğinize kalmış.

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

1 comments On Asp.net – Çoklu dosya kaydetme / multiple file upload

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.