• 12-09-2012, 22:57:11
    #1
    Kodlarim aynen asagida belirttigim gibi. Resimi yuklerken resim ismi ornegin "7d0ba050[1].jpg" oluyor.

    050[1].jpg, resimin orjinal ismi. Fakat ben orjinal isim olmasin istiyorum. Sadece resimin uzantisini "jpg, gif, png" nasil yazdirabilirim?

    Ayrica resim yuklerken boyutu limitlemek istiyorum. Mesela en fazla 2mb dosya yuklensin. Nasil yapabilirim?

    $kaynak =$_FILES['file']['tmp_name'];
    $isim =$_FILES['file']['name']; 
    $tip =$_FILES['file']['type']; 
    $buyukluk =$_FILES['file']['size'];
     
    $rand =substr(md5(uniqid(rand())),0,5); 
    
    $desteklenenformatlar = array ("image/jpeg","image/png","image/gif"); 
    $kaydedilecekyer = 'resimler'; 
    
    if (in_array ($_FILES['file']['type'], $desteklenenformatlar)) { 
    $dosya = $kaydedilecekyer . "/".$rand.$_FILES['file']['name']; 
    if (move_uploaded_file ($_FILES['file']['tmp_name'], $dosya)) { 
    
    echo "<font color = '#009900'><b>Dosyaniz basarili bir sekilde yuklendi!</b></font>"."<br/><br/>"; 
    
    echo "<b>Dosyanizin ismi :</b> "."$isim"."<br/>"; 
    echo "<b>Dosyanizin tipi : </b>"."$tip"."<br/>"; 
    echo "<b>Dosyanizin buyuklugu : </b>"."$buyukluk"."kb'tir"."<br/>";
    Simdiden cok tesekkurler..
  • 12-09-2012, 23:34:33
    #2
    1. http://www.w3schools.com/php/php_file_upload.asp
    linkini inceleyebilirsin başlangıç için idealdir bence.
    2. Uzantıyı almak için explode kodu kullanabilirsin noktadan patlatırsın ve 2. kısmı alırsın.
    3. Detaylı bir şey istiyorsan verot sınıfını kullanmanı tavsiye ederim. (Tavsiye)
    4. resim upload ettirilirken shell dosyalarından korunmak zorundasın yoksa belki aylarca uğraştığın iş bir 200 kb lik shell dosyası uploadı ile wareze düşebilir. (Tavsiye)
  • 13-09-2012, 01:19:38
    #3
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    1. http://www.w3schools.com/php/php_file_upload.asp
    linkini inceleyebilirsin başlangıç için idealdir bence.
    2. Uzantıyı almak için explode kodu kullanabilirsin noktadan patlatırsın ve 2. kısmı alırsın.
    3. Detaylı bir şey istiyorsan verot sınıfını kullanmanı tavsiye ederim. (Tavsiye)
    4. resim upload ettirilirken shell dosyalarından korunmak zorundasın yoksa belki aylarca uğraştığın iş bir 200 kb lik shell dosyası uploadı ile wareze düşebilir. (Tavsiye)
    hocam verot sınıfını denedim, fakat nedense beceremedim. burayı kullandım: http://ysfkc.com/php/resim-upload-sinifi

    shell dosyalarından nasıl korunulabilir acaba? biraz araştırayım
  • 13-09-2012, 03:13:49
    #4
    <?php
    $kaynak =$_FILES['file']['tmp_name'];
    $isim =$_FILES['file']['name']; 
    $tip =$_FILES['file']['type']; 
    $buyukluk =$_FILES['file']['size'];
    $maxbuyukluk = "2097152"; // rakam fazla olabilir hatırlamıyorum tam olarak
    
    if($buyukluk > $maxbuyukluk){
    	echo "Dosya Çok Büyük";
    }
     
    $rand =substr(md5(uniqid(rand())),0,5); 
    
    $desteklenenformatlar = array ("image/jpeg","image/png","image/gif"); 
    $kaydedilecekyer = 'resimler'; 
    
    $uzanti = end(explode(".",$isim)); //uzantiyi buluyoruz
    
    if (in_array ($_FILES['file']['type'], $desteklenenformatlar)) { 
    $dosya = $kaydedilecekyer . "/".$rand.time().$uzanti;  // ismi ayarladik
    if (move_uploaded_file ($_FILES['file']['tmp_name'], $dosya)) { 
    
    echo "<font color = '#009900'><b>Dosyaniz basarili bir sekilde yuklendi!</b></font>"."<br/><br/>"; 
    
    echo "<b>Dosyanizin ismi :</b> "."$isim"."<br/>"; 
    echo "<b>Dosyanizin tipi : </b>"."$tip"."<br/>"; 
    echo "<b>Dosyanizin buyuklugu : </b>"."$buyukluk"."kb'tir"."<br/>";  
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 03:13:49 -->-> Daha önceki mesaj 03:13:06 --

    bu satırı

    $dosya = $kaydedilecekyer . "/".$rand.time().$uzanti; // ismi ayarladik

    bununla değiştir unutmuşum

    $dosya = $kaydedilecekyer . "/".$rand.time().".".$uzanti; // ismi ayarladik
  • 13-09-2012, 03:17:46
    #5
    neptun adlı üyeden alıntı: mesajı görüntüle
    <?php
    $kaynak =$_FILES['file']['tmp_name'];
    $isim =$_FILES['file']['name']; 
    $tip =$_FILES['file']['type']; 
    $buyukluk =$_FILES['file']['size'];
    $maxbuyukluk = "2097152"; // rakam fazla olabilir hatırlamıyorum tam olarak
    
    if($buyukluk > $maxbuyukluk){
    	echo "Dosya Çok Büyük";
    }
     
    $rand =substr(md5(uniqid(rand())),0,5); 
    
    $desteklenenformatlar = array ("image/jpeg","image/png","image/gif"); 
    $kaydedilecekyer = 'resimler'; 
    
    $uzanti = end(explode(".",$isim)); //uzantiyi buluyoruz
    
    if (in_array ($_FILES['file']['type'], $desteklenenformatlar)) { 
    $dosya = $kaydedilecekyer . "/".$rand.time().$uzanti;  // ismi ayarladik
    if (move_uploaded_file ($_FILES['file']['tmp_name'], $dosya)) { 
    
    echo "<font color = '#009900'><b>Dosyaniz basarili bir sekilde yuklendi!</b></font>"."<br/><br/>"; 
    
    echo "<b>Dosyanizin ismi :</b> "."$isim"."<br/>"; 
    echo "<b>Dosyanizin tipi : </b>"."$tip"."<br/>"; 
    echo "<b>Dosyanizin buyuklugu : </b>"."$buyukluk"."kb'tir"."<br/>";  
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 03:13:49 -->-> Daha önceki mesaj 03:13:06 --

    bu satırı

    $dosya = $kaydedilecekyer . "/".$rand.time().$uzanti; // ismi ayarladik

    bununla değiştir unutmuşum

    $dosya = $kaydedilecekyer . "/".$rand.time().".".$uzanti; // ismi ayarladik
    Sagolun hocam oldu, peki bu shell olayina nasil bir cozum bulabiliriz ya?