PHP Dosya Upload

Merhabalar… yeni yazımda sizlere Okul  Sayfası için yazdığım php de dosya upload(yükleme) uygulamasının kodlarını paylaşacağım.

Yazdığım  dosya upload scriptinde istenilen dosya uzantılarını ve isimlerini engelleyebiliyorsunuz. scripti fonksiyon olarak tanımladım, böylece fonksiyonlar.php ye yükleyip tüm sitenizde kullanabilirsiniz.
Türkçe, boşluk vb karakterler otomatik olarak temizleniyor.

Hayırlı olsun… kodlar 

dosya upload edecek html sayfası: (upload_yolla.php)

aşağıda  php upload fonksiyonunun kodlarını bulabilirsiniz (upload.php)

upload(“upload2”); dediğimizde upload fonksiyonunu çağırıp, “upload2” klasörüne dosyayı yüklemesini söylüyoruz.

Yazar: Mustafa Şadoğlu

Mustafa sitemizde 102 yazı eklemiş...

Share
  • sevda

    Hocam upload2 klasörünü ben mi oluşturacağım yoksa otomatik oluşup oraya mı gidecek upload edilenler?

  • kahraman

    merhaba hocam ben forumda enctype=”multipart/form-data” kullandığım zaman forumda ki diğer input nesnelerine ait verileri veritabanına eklemiyor. onu kaldırdığımda verileri ekliyor ama resmi yüklemiyor doğal olarak 🙂 acaba bunun için bi çözüm sunabilirmisiniz ?

  • @Erdem
    bence daha yeni sınıflara göz atman gerekiyor…
    örneğin
    http://www.yakuter.com/php-thumbnailer-sinifi-v20/
    http://ysfkc.com/php/resim-upload-sinifi
    http://gronia.com/forum/g-resim-boyutlandirma-sinifi-php-819.html
    gibi… yeni yazılımlara geçmek lazım:)

    soruun cevabına gelince: evet boyutlandırmayı iptal edersen rahatlıkla istediğin dosyayı upload edebilirsin… ama bence .jpg kodlarının yanına azcık çalışarak .png .gif boyutlandırıcı ekleyebilirsin… bu iş sandığından çok daha kolay…
    Allaha emanet

  • @Erdem
    Bu kodlarda boyutlandırma işlemini iptal etsek farklı formatlarda resim yükleyebilirmiyiz?Eğer yükleyebilirsek resim boyutlandırmayı nasıl iptal edebiliriz.Biraz çok oldum galiba 🙂

  • Hocam normalde ben o kodları kullanıyorum zaten fakat o kodlarda da sadece jpeg formatında resim yükleyebiliyor.Aslında o kodlarda png ve gif olarakta yükleme yapılabilse benim sorunum çözülecek.Kullandığım kodlar aşağıda.Ben biraz uğraştım ama gif ve png formatında yükleme yaptırmayı başaramadım…

    Untitled Document

    Dahiweb.Com
    Coklu Resim Boyutlandirma

    <?
    if($_FILES['resimler'])
    {
    $file = $_FILES['resimler'];
    include("resim_boyutla.php");
    $resim_klasor="resimler";

    $buyuk_resim_en=640;
    $buyuk_resim_boy=480;

    $kucuk_resim_en=200;
    $kucuk_resim_boy=150;

    function turkcekarakter($isim){
    $bulunacak = array('ç','Ç','ı','İ','ğ','Ğ','ü','ö','Ş','ş','Ö','Ü',',',' ','(',')','[',']');
    $degistir = array('c','C','i','I','g','G','u','o','S','s','O','U','','_','','','','');

    $isim=str_replace($bulunacak, $degistir, $isim);
    return($isim);
    }

    $klasor="gonder";

    $k = count($file['name']);
    $desteklenenformatlar = array ("image/jpeg","image/pjpeg");

    for($i=0 ; $i < $k ; $i++)
    {

    $isim = split('/',urldecode($file['name'][$i]));
    $rand =time();
    if(in_array ($file['type'][$i], $desteklenenformatlar))
    {
    $resim=$resim_klasor."/".$rand."_".turkcekarakter($isim[count($isim)-1]);

    move_uploaded_file($file['tmp_name'][$i], $resim);

    $kucukresim =$resim_klasor."/".$rand."_kucuk_".turkcekarakter($isim[count($isim)-1]);
    move_uploaded_file($_FILES["resim"]["tmp_name"],$kucukresim);

    $icerik = resample($resim,$kucuk_resim_en,$kucuk_resim_boy);
    $dosya = fopen ($kucukresim,"w+");
    fwrite($dosya,$icerik);
    fclose($dosya);

    $icerik = resample($resim,$buyuk_resim_en,$buyuk_resim_boy);
    $dosya = fopen ($resim,"w+");
    fwrite($dosya,$icerik);
    fclose($dosya);

    echo"büyük resim adı=$resim”;
    echo”küçük resim adı=$kucukresim”;
    include “ayar.php”;
    if (count($_POST) > 0){

    $firmaadi= $_POST[“firmaadi”];
    $ekle = @mysql_query(“insert into resim(firmaadi, resim, kucukresim ) values (‘$firmaadi’, ‘$resim’, ‘$kucukresim’)”);
    }
    if($ekle){
    echo “Firma Bilgileriniz Eklendi.Size Geri Dönüş Yapılacaktır…”; }
    }
    }
    }
    ?>

    @Mustafa Şadoğlu

  • @Erdem
    normalde dosya isminin gelmesi lazım…
    tarih yazdırma işlemini
    http://www.dahiweb.com/php-coklu-resim-boyutlandirma
    burada yapmıştım… oradan bakabilirsiniz…

  • 0){

    $ekle = @mysql_query(“insert into resim(file_ismi ) values (‘$file_ismi’)”);
    } ?>

    Kodların sonuna bu kodu ekledim fakat boş kayıt yapıyor.Bir sorum daha olacak hocam.Upload edilen resmin ismini değiştirebilsek daha iyi olmazmı.Başına veya sonuna tarih yazsak böylece resimler çakışmamış olur …

  • @Erdem
    kodlara baktım da… bunu ben mi yazmışım dedim 🙂 baya olmuş yazalı…
    sorunuzun cevabı
    “$dizin/”. $file_ismi
    şeklinde olması lazım…
    yukarıdaki datayı veritabanına kayıt edebilirsiniz…
    eğer yapamazsanız yine yardımcı olabilirim…
    iyi günler

  • Hocam güzel çalışma elinize sağlık fakatbir sorum olacak.Upload edilen dosya yolunu veritabanına nasıl yazdırabiliriz..?

  • @bekir
    deneme, yanılma, hata kodlarını görme durumum olmadığı için ilk aklıma gelen seçeneği söyleyeceğim:
    yüklemeye çalıştığınız dosya boyutu php ile tanımlanmış upload edilebilecek dosya boyutundan büyük olabilir…
    hatayıda yazsaydınız belki farklı birşeylerde söyleyebilirdik…
    iyi günler…

  • hocam ben bunu yaptıqım zaman mp3 yüklemek istediqimde return code ceriyor ne yapmalıyım acill bana bildirmeniz lazımm

  • @yorumcu
    herhangi bir php sitesine bu kodları ekleyebilirsin…

  • yorumcu

    Bu kodu kullanabileceğimiz ücretsiz php sayfası yapma siteleri var mı acaba?

  • @raozkardes
    İlgilerinize teşekkürler…
    Ben kendi ihtiyaçlarımı karşılayacak olan yazılımları paylaşıyorum…
    Daha iyi bilen koder arkadaşlardan da bilgilerini paylaşmalarını bekliyorum…

    DÜNYADA HİÇBİR ELEŞTİRMENİN HEYKELİ DİKİLMEMİŞTİR…

  • Çok teşekkür ederim. Bir süre önce epeyce ihtiyaç duymuştum. Arşivde tutacağım. Emeğinize sağlık.