Php Dosya Yükleme Sorunu ve Çözümü

Uzman Cevap’da sıkça sorulan sorulardan bir tanesi, aynı sayfada dosya yükleme işleminin nasıl yapıldığıydı.. Yani sorun şu ki, başka bir sayfaya gönderince dosya yükleme işlemi oluyor ama aynı sayfada yapınca olmuyor.. En azından bilmeyenlerin düşündüğü durum budur 🙂 Peki aslı astarı nedir bu olayın?

Şimdi büyük ihtimalle sizde böyle bir sorunla karşılaştıysanız yaptığınız işlem şudur;

if ($_POST)
{
     // dosya yükleme işlemi
}

Ve html kodunuzda şöyle olsun;

<form action="" method="post" enctype="multipart/form-data">
	Dosya: <input type="file" name="dosya" /> <button type="submit">Yükle</button>
</form>

Burada siz dosyaları seçip gönderseniz bile işlem yapmayacaktır.. Çünkü herhangi bir değer göndermiyorsunuz, yani tipi file olan input dışında bir değer göndermiyorsunuz..

Çözümü;
En basit olarak submit butonuna name vermeniz yeterli olacaktır 🙂

<form action="" method="post" enctype="multipart/form-data">
	Dosya: <input type="file" name="dosya" /> <button name="submit" type="submit">Yükle</button>
</form>

Bu şekilde çözüme ulaşabilir, aynı dosya içerisinde upload işlemini sorunsuz bir şekilde yapabilirsiniz.. Elbette her upload sorunu bu olacak değil ama bu sorunla çok fazla karşılaşıldığı için bilgilendirme amaçlı yazıyorum bu yazımı 🙂 görüşmek üzere.

Yayınlayan

Tayfun Erbilen

2009’dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“Php Dosya Yükleme Sorunu ve Çözümü” üzerine 11 yorum

  1. Teşekkürler. Bu arada jquery derslerinin devamı nerelerde kaldılar :d
    Ayrıca yorum altındaki güvenlik kodunda dünya dilleri arasında bulunmayan karakterler çıkıyor.

  2. aynı sayfada dosya upload etmeyi hala yapamıyorum submit butonuna isimde verdim.

  3. selam @burak ünkan, dosyalarını gönderirsen inceleyip sana sorunun ne olduğunu söyleyebilirim.

  4. Öncelikle merhabalar çalışmalarından ötürü sonsuz teşekkürler benim konum biraz farklı asagıda kodlarını verdigim bir profil resmi güncelleme sorunu bu konu hakkında yardımınızı bekliyorum sayın Erbilen

    <?php
    if($_POST){
    $id = mysql_real_escape_string($_POST["id"]);
    $baslik = strip_tags($_POST["baslik"]);
    $icerik = $_POST["icerik"];
    $resim1 = strip_tags($_POST["resim1"]);
    $resim = $_FILES["resim"]["tmp_name"];
    $resimadi = $_FILES["resim"]["name"];
    if($resimadi == ""){
    $resim3 = $resim1;
    }else{
    $resim2 = substr($resim1,37);
    $hedef = "../bolumler/resimler/programcilar";
    $hedef1 = "bolumler/resimler/programcilar/";
    $resim3 = $hedef1.$resim2;
    $yukle = move_uploaded_file($resim,$hedef.'/'.$resim2);
    }

    Kod bu, aldıgım hata ise asagıda verdigim linkte

    http://m1310.hizliresim.com/1g/1/t5gnb.jpg

  5. Merhaba @MeTaL,
    belirlemiş olduğun dosya yolu muhtemelen geçersiz olduğu için taşıma işlemini gerçekleştiremiyorsun.
    Kesin olarak dizin yolu vermek istersen realpath() fonksiyonunu araştırabilirsin.
    Doğru yolu verdiğinden emin olduğunda yükleme işleminin başarılı olduğunu göreceksin.
    Kolay gelsin.

  6. Yolun dogru oldugundan eminim cünkü farklı upload işlemlerinde aynı yöntem dogru calısıyor fakat bu döngüde olmuyor bu konuda gercekten yardımınıza ve bilgilerinize ihtiyacım var

  7. Merhaba, dosya yükleme işlemlerinde video ya da ses dosyaları için ayrı bir işlem mi gerekiyor? Teşekkürler.

  8. @Oğuzhan Bilir, Eğer yükleme işlemi her dosya için aynıdır. Sonrasında üzerinde değişiklik yapacaksaknız her ikisi için uygulanacak işlem farklıdır sadece.

Bir Cevap Yazın

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