Geniş Ekran Modu Otomatik Ekran Boyutu Font Boyutunu Azalt Font Boyutunu Azalt Font Boyutunu Normal Yap Yazdır

Ajax İle Dosya Göndermek.

Ajax & javascript & dom & php yakuter.

DOSYALARAjax ile Dosya Göndermek.

index.php: Betiğimizin temel dosyası ve anasayfasıdır. Dosya gönderme formu, javascript fonksiyonlarımız ve css stil seçicilerimiz bu dosyada bulunur. Dosyanın dikkatinizi çekmek istediğim kısmı javascript fonksiyonlarıdır.

JAVASCRIPT:
  1. function dosyaSil(silinecekDosya) {
  2.     if( confirm('Dosya Silinsin mi?') ) {
  3.         var sc="yap=sil&dosya="+silinecekDosya;
  4.         JXP(1, "dizin_alani", "cevap.php", sc);
  5.     }
  6. }
  7.  
  8. function yenile() {
  9.     var sc="yap=yenile";
  10.     JXP(1, "dizin_alani", "cevap.php", sc);
  11. }
  12.  
  13. function dosyaGonder(){
  14.     document.dosyaFormu.submit();
  15.     var sc="yap=gonder";
  16.     JXP(1, "dizin_alani", "cevap.php", sc);
  17.     document.dosyaFormu.reset();
  18. }

Farkettiyseniz artık AJAX nesnesi XmlHttpRequest'i çağırmak için bir ton kod ile uğraşmıyoruz. Hazır kütüphane kullanmanın faydalarından birisi de budur. Tabi konunun mantığını anlamadan da hazır kütüphane kullanmanızı kesinlikle tavsiye etmiyorum.

Javascript fonksiyonlarına dönecek olursak:
dosyaSil(dosya) fonksiyonu cevap.php dosyasına silinmesini istediğimiz dosyanın ismini gönderir. Gelen sonuç dizin_alani id'sine sahip alanda görüntülenir. Şunu da belirtmekte fayda var, gelen sonuç yine dizindeki dosyaları listeleme işlemidir.
yenile() fonksiyonu dosya listesini yenilemenizi sağlayan fonksiyondur. Tüm sayfa yerine sadece AJAX sayesinde dosya listesini yenileyebiliyoruz. Yenilerken yapılan işlem cevap.php dosyasından dizini listelemesini istemekten başka bir şey değildir ;)
dosyaGonder() fonksiyonu önce formumuzu yani gözat diyerek seçmiş olduğunuz dosyayı iframe'e gönderir, ardından cevap.php dosyasından dosya listesini yenilemesini ister ve son olarak formu sıfırlar.
Not: Dosyayı iframe'e göndermesini buradan değil, formun tanım bilgisinden target="pencere" yani pencere isimli iframe diyerek belirtiyoruz.

dizin.php: Bu dosyanın tek işlevi kendi içinde barındırdığı ve bizim düzenlediğimiz klasor değişkeni ile belirtilen dizindeki dosyaları listelemek. Bu dosyayı include('dizin.php'); diyerek anasayfada(index.php) ve cevap.php dosyasında çağırıyoruz.

PHP:
  1. <?php
  2.     $klasor = "dosyalar/"; //Burayi duzenleyin
  3.    
  4.     $sonuc='<table style="font-size:12px;">';
  5.     if ($dizin = opendir($klasor)) {
  6.         while ($dosya = readdir($dizin)) {
  7.             if ($dosya!='.' AND $dosya!='..')
  8.                 {
  9. $sonuc.= '<tr style="background-color:#EEEEEE;height:10px;border:1px dashed Gray;">';
  10. $sonuc.= '<td style="padding: 5px;" width="450" align="left">';
  11. $sonuc.= '<a href="dosyalar/'. $dosya. '">'. $dosya. '</a></td>'; //burasi onemli
  12. $sonuc.= '<td style="padding: 5px;" width="50" align="center">';
  13. $sonuc.= '[<a href="javascript:dosyaSil(''. $dosya. '');">sil</a>]</td>';
  14. $sonuc.= '</tr>';
  15.                 }
  16.             }
  17.         closedir($dizin);
  18.         }
  19.     $sonuc.='</table>';
  20.     echo $sonuc;
  21. ?>

cevap.php: Bu dosya AJAX ile bilgileri gönderdiğimiz dosyadır. İki adet işlevi bulunmakta:
1) Eğer silme işlemi seçilmişse, dosya değişkeni ile gelen dosyayı siliyor.
2) Dizindeki dosyaları dizin.php dosyasını çağırarak listeliyor.

Burada dikkatinizi çekmek istediğim konu sleep(2) fonksiyonu. Bu fonksiyon içine girilmiş olan değer boyunca(saniye) betiği bekletir. Bekletmek istedim çünkü aynı zamanda bir yandan iframe'e gönderilmiş bir dosya bulunmakta ve bu dosya siteye yüklenmekte. Diyelim ki dosyamız biraz büyük. O halde cevap.php fonksiyonundan cevap geldiğinde dosya hala yüklenmediği için yine eski dizini görebiliriz. Bu yüzden de dosyanın gönderilmediğini sanarız. Oysa ki dosya hala gönderilmektedir. Aslında buna bir tedbir olarak anasayfaya (index.php) dizin listesini yenilemek için Yenile bağlantısı koydum ama yine de bu sleep fonksiyonu da bir önlem olabilir.

PHP:
  1. <?php
  2.  
  3. $klasor = "dosyalar/"; //Burayi duzenleyin
  4.  
  5. if ($_POST['yap'] =="sil")
  6.     {
  7.     $dosyasil = $klasor.$_POST['dosya'];
  8.     $silindi=unlink($dosyasil);
  9.     }
  10.  
  11. sleep(2);
  12.  
  13. include('dizin.php');
  14. ?>

islem.php: Bu dosya iframe içinde çağırdığımız dosyadır ve form ile gönderilen dosyayı yine islem.php dosyasında bulunan klasor değişkeni ile belirttiğimiz klasöre gönderir.

PHP:
  1. <?php
  2.    
  3. $klasor = "dosyalar/"; //Burayi duzenleyin
  4. $giden = $klasor . basename($_FILES['dosya']['name']);
  5. move_uploaded_file($_FILES['dosya']['tmp_name'], $giden)
  6.  
  7. ?>

Ve mutlu son

Bu uygulama geliştirildiği takdirde basit işlemler için güzel bir dosya yöneticisi haline dönüşebilir. Hatta dosya gönderme işlemi php'nin ftp fonksiyonlarıyla yapılırsa tıpkı bir ftp programı gibi kullanılabilen bir betik bile olabilir ;)

Umarım AJAX Göndermeç'ten memnun kalırsınız. Maksadım mantığını anlatmak olduğu için basit bir örnek sundum size. Belki ilerki seviyelerde sadece kullanmanız için güzel örnekler verebiliriz.

Güle güle kullanın :)

AJAX Göndermeç'i test edin.
AJAX Göndermeç'i indirin.


Kaynak ajax-tr.com/ajax-ile-dosya-gondermek/2/
Bu içerikle ilgili henüz herhangi bir yorum yapılmamıştır. Bu içerikle ilgili Yorumunuzu eklemek için burayı tıklayınız.

A J A X

Ajax ile Dosya Göndermek
İngilizce bir makaledir.
Ajax Nedir?
Bu yazımda web uygulamalarında gün geçtikçe daha yoğun bir şekilde kullanılan bir teknikten bahsedec...
Ajax'a Giriş
Ajax (asynchronous javascript and xml); web tabanlı uygulamalarda, zengin kullanıcı arayüzü ve güçlü...
Ajax Nedir?
Geride bıraktığımız 2005-2006 yıllarında hakkında en çok konuşulan web olaylarından birisi ajax oldu...
Ajax Nedir? Ajaxı Oluşturan Bileşenler Nelerdir?
Ajax, terimolojik olarak asynchronous javascript and xml; yani javascript ve xml'in eş zamanlı olmay...
Javascript Ve Ajax İle Zamanuyumsuz İstekler Oluşt...
Web uygulamalarının çoğu, sunucudan tüm html sayfasını alan bir istek/yanıt modelini kullanır. Sonuç...
30 Saniyede Ajax.
Eburhanın yazmış olduğu ajax'i anlamak ve ibrahim'in ajax'in ne olduğuna değindiği ajax seminer notl...
Ajax Nedir?
"ajax;ne Bir Dil,ne De Bir Kütüphane De?ildir. Ajax Sadece Bir Yöntemdir."

    Ödev Gönder | İncelenmeyi Bekleyen Ödevler | Uygulama Resimleri | Uygulama Resmi Gönder | İnternet Üzerinden Sınav | Test Sorusu Gönder | Sınıf Karneleri | Anketler | Linkler
    www.dijitalders.com

    bilgidijitalders.com
    Bu sayfalar en iyi 1024 x 768 ekran çözünürlüğünde görüntülenir.
    Site içerikleri, site kullanıcıları tarafından yollanan içeriklerdir. Her hangi bir içeriğin lisanslı yahut şahsınıza ait olduğunu tarafımıza iletirseniz gerekli düzenlemeyi yapacağız. Kullanılan içerikler, siteyi kullanan öğrenciler ve araştırmacılar için kolaylık sağlamak amacıyla oluşturulmuştur.
    Sayfada HATA! Olduğunu Düşünüyorsanız | Sık Kullanılanlara Ekle | www.dijitalders.com'u Ana Sayfam Yap | Web Tasarımcıya e-Posta
    Bu site 877,471 kişi tarafından ziyaret edilmiştir.