Şimdi Ara

Dosya yükleme de dosya tipine göre kategoriye ayırmak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
566
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,

    Dosya yükleme de dosya tipine göre kategoriye ayırmayı aşağıdaki kodlar ile yaptım. Sıkıntım şuradahttp://localhost/manage/yukle.php ile çalışırken aşağıdaki php kodlarım çalışıyor işlevini görüyor yalnızhttp://192.168.20.21/manage/yukle.php ile giriş işlem yapmak istediğim de php kodlar dosya tiplerini algılamıyor ve Fotoğraf olan tüm dosyaları video olarak kategori yapıyor. Dosyayı JPG olarak yüklesede sql veri tabanına video olarak kategori ettiği için dosyaları listeleme de video kategorisine atıyor.
    Bu sorunu nasıl çözerim.

    HTML KODU:
    echo ."<form method=\"post\" enctype=\"multipart/form-data\" accept-charset=\"UTF-8\" action=\"$PHP_SELF\">" 
    ."<input type=\"file\" name=\"filetoupload\"><br>"
    ."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br>"
    ."<input type=\"Submit\" name=\"uploadform\" value=\"Yükle\"></form>";

    PHP KODU:
    if ($_FILES["filetoupload"]["type"] == "image/pjpeg" || $_FILES["filetoupload"]["type"] == "image/jpg" || $_FILES["filetoupload"]["type"] == "image/gif" || $_FILES["filetoupload"]["type"] == "image/x-png" || $_FILES["filetoupload"]["type"] == "image/x-png") 
    {
    $kategori = ("fotograf");
    }
    else
    {
    $kategori = ("video");
    }







  • Buradan nasıl fark oluşuyor bilemem, ama sorunun ne olduğunu anlamak için;

    echo $_FILES["filetoupload"]["type"];

    yazarak dosya türü sonucunun ne olduğunu görebilirsiniz. Eğer boş sonuç varsa video olarak dönmesi normal.

    Ben resim mi değil mi kontrolünün yeterli olmadığını düşünüyorum. image/png şeklinde de olabilir o resim. O yüzden her resim türünde image kelimesinin geçtiğini düşünerek;

    $dosya_turu = $_FILES["filetoupload"]["type"];
    if(preg_match('/image/i', $dosya_turu)){
    $kategori = ("fotograf");
    }
    else {
    $kategori = ("video");
    }

    şeklinde if düzenlemesi yaptım.

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: nihattr

    Buradan nasıl fark oluşuyor bilemem, ama sorunun ne olduğunu anlamak için;

    echo $_FILES["filetoupload"]["type"];

    yazarak dosya türü sonucunun ne olduğunu görebilirsiniz. Eğer boş sonuç varsa video olarak dönmesi normal.

    Ben resim mi değil mi kontrolünün yeterli olmadığını düşünüyorum. image/png şeklinde de olabilir o resim. O yüzden her resim türünde image kelimesinin geçtiğini düşünerek;

    $dosya_turu = $_FILES["filetoupload"]["type"];
    if(preg_match('/image/i', $dosya_turu)){
    $kategori = ("fotograf");
    }
    else {
    $kategori = ("video");
    }

    şeklinde if düzenlemesi yaptım.




    Merhaba nihattr,
    Teşekkür ederim hızır gibi yetiştin, şuan olay çözüldü. Bu if(preg_match('/image/i', $dosya_turu)){ preg_match ne işe yarıyor? bir de ('/image/i', bu şekilde yazılmasının sebebi nedir?

    Çok çok sağ ol.

    Hayırlı işler.




  • Merhabaaa. Rica ederim.

    preg_match fonksiyonu bir içerikte istenilen/aranılan bir karakteri, karakter grubunu, tam kelimeyi, deseni vb. kontrol eder. Bu kontrol eşleştirme olarak tanımlanır. if ile yapılan sonucun olumlu olup olmadığını kontrol etmek. Dosya içerik türünde image kelimesi geçiyorsa olumlu sonuç verir. i harfi büyük küçük harf ayrımı yapmadan eşleştirmeye bakar. Yani IMAGE/PNG olsa da eşleşitme sonucu olumludur. Gerçi bu kodda olmasa da olur sanırım ama alışkanlık olmuş. :D

    Mesela bir formda sadece İstanbul sabit hat numarası yazılmak zorunda olunsa sanırım kontrolü şöyle olurdu.

    /^021(2|6)[0-9]{7}$/

    0212 veya 0216 alan kodu yazılabilir ve 7 adet 0-9 arası rakam yazılabilir.

    ^ karakteri başlangıcının 021... şeklinde zorunlu olduğunu ve $ karakteri de 7 adet rakamdan sonra son bulması gerektiğini belirtir. Yani başlangıç ve bitiş sınırılarını ifade eder.

    Daha çok karmaşık eşleştirmeler de var da insanın kafası karışıyor gerçekten. :D

    Sorun çözüldüyse ne mutlu. İyi akşamlar.



    < Bu mesaj bu kişi tarafından değiştirildi nihattr -- 25 Ocak 2016; 1:14:41 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.