Ana sayfa › Forumlar › PROGRAMLAMA › ASP.NET › ASP.NET ile basit bir Upload işlemini ve Upload Size Ayarı
- Bu konu 3 yanıt içerir, 4 izleyen vardır ve en son 12 yıl 8 ay önce özgür tarafından güncellenmiştir.
-
YazarYazılar
-
3 Nisan 2012: 14:19 #11700Tolgaİzleyici
ASP.NET ile basit bir Upload işlemini ve Upload Size Ayarı ile ilgili makalem ektedir.
işlemi nispeten zor bir işti. Üçüncü parti bileşenlere ihtiyaç duyuyorduk veya oturup, biraz zorlayıp kendi Upload bileşenimizi yazmamız gerekiyordu. ASP.NET de Upload işlemleri iki satırlık kodla yapılıyor artık. ASP.NET geliştiricileri, web programcılarının takıldığı yerleri bularak bunlara kolay ve kullanışlı çözümler sunmuşlar. Buna örnek olarak Upload’ı verebiliriz.
ASP.NET ile basit bir Upload işlemini nasıl yapabilirim ?
Fazla lafa gerek yok hemen başlayalım. İlk olarak yüklenecek dosya yolunun yazılacağı bir giriş kutusuna ( ), bir butona ve bir iki satır koda ihtiyacımız var:
dosya_yukleme.aspx
<%@ Page Language="C#" %>
ASP.NET ile Upload İşlemleri
Örnek kod dosyayı, C:Yukle dizini altına kaydetmeye çalışacaktır. Çalıştırmadan önce böyle bir dizin oluşturunuz veya kodda gerekli değişikliği yapınız.
Kodu biraz inceleyelim. Değişkenleri tanımlıyoruz, dosya var-yok kontrolünü yapıyoruz. Tanımladığımız değişkene ( strDosyaAdi) formdan gelen dosya adını atıyoruz. Pek dosya adı denmez çünkü formdan gelen değer genelde dosyanın yolunu içerir: Örneğin c:\documentsaspbelge.txt. Ancak bize burda lazım olan kısım belge.txt yani dosyanın sadece ismidir. Bunun için de bir küçük kırpma işlemi yapıyoruz. PostedFile nesnesinin SaveAs metodu ile dosyayı bilgisayarımıza kaydediyoruz. Burada biz bilgisayarımızda c:yukle adında bir klasör açtık ve yüklenecek dosyalara bu yolu gösterdik. Sonuçta iş bitmiştir mesajını veriyoruz. Hatalar için de bir mesaj veriyoruz tabii. Bu mesajları burada Msj.InnerHtml ile kullanıcıya yansıtıyoruz.
İşin HTML tarafına gelelim: Bir form oluşturduk. Burada önemli noktalardan bir tanesi şu ki form içinde enctype=”multipart/form-data” özelliğini yazdık. Tabi ASP.NET teknolojisinin tabularından runat=”server” ve id=yukle yi unutmayalım. Sonra bir girişi oluşturduk ve type=”file” özelliğini yazmayı unutmadık. Mesajlarımız için bir oluşturduk. Burada span’a bir id (id=Msj) atadığımıza ve runat=server eklediğimize dikkat edin. Son olarak da bir buton oluşturduk, oluşturduğumuz bu butonun OnClick olayına Dugme1_Click işlevini bağladık.
Dosya yüklememiz için bize en büyük katkıyı yapan PostedFile nesnesidir. PostedFile nesnesinin SaveAs metodunu kullanarak yaptık tüm işimizi. Ayrıca PostedFile nesnesinin FileName özelliğini kullanarak da formdan gelen dosyamızın ismini öğrendik. PostedFile’ın marifetleri daha bitmedi, aşağıda değineceğiz.
Kullanıcının yüklediği dosyanın bazı özelliklerini nasıl elde ederim ?
Sunucumuza yüklenen dosyanın özelliklerini öğrenebiliriz. PostedFile nesnesi bize önemli bilgiler verir. Örneğin dosya adı, dosya tipi ve dosya boyutu gibi. Biraz önceki örnekte dosya adının nasıl elde edildiğini gördük ( strDosyaAdi = yuk_dosya.PostedFile.FileName). Şimdi de yüklenen dosyanın tipi ve boyutunu elde etmeyi öğreneceğiz.
yukle_ozellik.aspx
<%@ Page Language="C#" %>
ASP.NET ile Dosya Yükleme İşlemleri
Yukarıdaki örnekle aynı olan kısımları es geçerek, yeni eklediğimiz kısmın açıklmasını yapalım. Yeni özellikler için değişken atadık. Kullanıcının yüklediği dosyanın tipinin öğrenmek için (resim dosyasımı(jpg,gif), yazı dosyasımı(txt)) strDosyaTipi = yuk_dosya.PostedFile.ContentType; kodunu yazdık. Kullanıcını gönderdiği dosyanın boyutunu (byte tipinde) intDosyaBoyutu = yuk_dosya.PostedFile.ContentLength; kodu ile öğreniyoruz. Basit değil mi? Aldığımız bu değerleri sonra bilgi mesajı olarak ekranda gösteriyoruz. Tüm bu bilgileri PostedFile nesnesinden aldığımıza dikkat edin.
Birden Fazla Dosya Yükleme İşlemini Nasıl Yaparım?
Tamam, tek dosya yükleme işlemi yaptık da ben sitemde birden fazla yükleme işlemi yapmak istiyorum? Şimdi de bu sorunun cevabına bakalım. Bu iş için HttpFileCollection sınıfını ve HttpRequest.Files özelliğini kullanacağız.
bir_ikiyukleme.aspx
<%@ Page Language="C#" %>
Kodu inceleyelim. İşin HTML kısmında fazla bir farklılık yok. Dikkat ettiyseniz bir önceki örneklerde bir adet dosya yüklemek için bir unsuru kullanıyorduk, şimdi üç dosya yüklemek için tabii ki üç unsuru kullanacağız.
Gelelim kod kısmına, yukleMesaj() metodu döngüdeki herbir yükleme işlemi için bize bir mesaj üretiyor ve biz de bu mesajı sayfaya sonuç olarak yazdırmak için kullanıyoruz.
Kod kısmında önemli bir payı HttpFileCollection sınıfı ve HttpPostedFile nesnesi alıyor. Diğer taraftan formdan gelen tüm dosyaların bilgisayar kaydedilmesi için bir döngü kurduk. Bu işlemlerde düğmemize tıklama ile tetiklendi. Yüklenecek her dosya için döngü alttaki işlemleri yani yükleme işlemlerinin gerçekleştirdi. Bu kısımdaki işlemlerin açıklamasını yukarıdaki örneklerde değinmiştik.
Upload Edeceğimiz dosya boyutunu nasıl ayarlayacağız?
Bu bir soru veya bir hata sorusu da olabilir. Eğer siz 4 mb dan fazla boyutlu bir dosya upload etmeye kalkarsanız muhtemelen bir hata mesajı alacaksınızdır. Bunun nedeni kişisel suncunuzda veya web sunucunuzda sınırın (öntanımlı değerinin) 4 mb (4096) olarak belirlenmesinden kaynaklanır. Şimdi bu değeri istediğimiz kadar arttırmayı göreceğiz. Nasıl mı? Makinamızın yapılandırma dosyasındaki maxRequestLength değerini değiştireceğiz.
Nasıl yapacağız bu işi? WINDOWSMicrosoft.NETFrameworkv1.0.3705CONFIGmachine.config dosyasındaki,
kısmından : bölümünü buluyoruz. Buradaki maxRequestLength=”4096″ kısmını isteğe bağlı olarak değiştirdik mi işlem tamam. (Ben mesela bu değeri 7096 yaptım, ve örnekte bir upload yaptım 6,581 kb lık bir dosya idi ve herhangi bir sorun yaşamadım.)
3 Nisan 2012: 17:48 #11709AnonimPasifçok faydalı bir paylaşım olmuş teşekkürler
3 Nisan 2012: 17:48 #11710BahadirÜyeteşekkürler asp.net eglenceli
7 Nisan 2012: 11:08 #11961özgürİzleyiciteşekkürler verdiğiniz bilgiler için teşekkürler
-
YazarYazılar
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.