Makale Özeti

ASP ile en çok sorun çıkaran işlemlerden birisi olan upload işlemini ASP.NET üzerinde inceliyoruz.

Makale


ASP konusunda en sık sorulan sorulardandı Upload yani dosya yükleme işleminin nasıl yapılacağı. ASP.NET geliştirilirken üzerinde durulan sorulardan en önemlisi şu idi: "Yazılım geliştiriciler ASPde neyi en sık kullandılar ve bunu yaparken ASP belirli noktalarda yetersiz kaldı?" Bu soruya verilebilecek en somut yanıtlardan biriydi upload. Ve artık Upload ASP.NET içerisinde bütünleşik geldi. Aşağıdaki kod örneği C# ile yazılmıştır, istenirse VB.NETe çevirmek de oldukça kolay. İsterseniz koda genel bir göz atalım ardından makaleye devam edelim:

<%@Page Language="C#"%>

<Html>

<head>

<title>ASP.NET ile Upload İşlemi</title>

</head>

<body>

<script language="C#" runat="Server">

      void DosyaUpload(object Sender,EventArgs E)

      {

            if (dosya.PostedFile !=null) //Dosyanın kontrolü

            {                           

                  string DosyaAdi = Dosya.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("\\") + 1) ;

                  string DosyaTipi = Dosya.PostedFile.ContentType ;

                  int DosyaBoyutu =Dosya.PostedFile.ContentLength;                

                  if (DosyaBoyutu <=0)

                        Response.Write("Hatalı dosya, upload yapılamadı: " + DosyaAdi);

                  else

                  {

                        Dosya.PostedFile.SaveAs(Server.MapPath(".\\" + DosyaAdi));

                        Response.Write( DosyaAdi + " isimli " + DosyaTipi + " dosya tipindeki " + DosyaBoyutu.ToString() + " byte dosya boyutuna sahip dosya başarıyla upload edilmiştir.");

                  }

            }

      }

</script>

<%if(!Page.IsPostBack)

{

%>

ASP.NET ile Dosya Upload İşlemleri<br><br>

 

<form id="yazgelistirupload" name="yazgelistirupload"  method="post" enctype="multipart/form-data" runat="server">

Dosyayı seçiniz: <input type="file" id="dosya" name="dosya" runat="server">

<br><br>               

<asp:button value="Upload" runat="server" id="UploadButonu" Text="Upload" onClick="DosyaUpload" />                

</form><br><br>

Not: Upload İşlemi için işlem yapılan klasöre mutlaka write hakkı verilmelidir.

<%}%>

 

</body>

</Html>

 

Şimdi dikkatinizi çektiyse ilk defa sayfa çağırıldığında iki sunucu kontrolü aktif olacaktır. Birincisi input type=file diyoruz ama dikkat runat=server dediğime göre ve bir id verdiğime göre bu bir sunucu kontrolü artık. İkincisi ise ASP.NET ile gelen bir sunucu kontrolü olan asp:button kontrolü. onClick eventine dikkat; sunucu tarafında gerçekleşiyor ve DosyaUpload isimli C# kodunu çağırıyor.

Koda bakacak olursanız sayfa ile çeşitli bilgi denetleme kontrolleri bulunmakta dosya olup olmadığını ve adını parse eden. Ardından tek yapmamız gereken ön sayfadan aldığımız idsi dosya olan nesnemizin özelliklerini kullanarak dosyayı almak ve sadece SaveAs methodunu çağırmak.

Unutmadan bu upload işleminin yapıldığı klasöre write hakkı verilmesi gerekmektedir. Yeni makalelerde görümek üzere...

Mehmet Nuri Çankaya