• 26-02-2013, 22:34:23
    #1
    Merhaba arkadaşlar çözemediğim bir detay hakkında sizlerden yardım istiyorum

    Aşağıda md5 kullanarak resmin ismini şifreliyorum fakat aynı isimde tekrar resim upload ettiğimde daha önce girilmiş olan aynı isimdeki resim değişiyior bana resmin ismide aynı olsa farklı olarak kaydetmem için ne yapmalıyım

    for($i=0; $i<count($_FILES['pic']); $i++){
    
    
    	if((!$_FILES['pic']['type'][$i] == "image/jpg")||(!$_FILES['pic']['type'][$i] == "image/jpg")){
    		die($callError);
    	}else{
    		makeSmall($_FILES['pic']['masterid']['name'][$i],$_FILES['pic']['masterid']['tmp_name'][$i]);
    		makeBiger($_FILES['pic']['name'][$i],$_FILES['pic']['tmp_name'][$i]);
    		mysql_query("insert into `pictures` set `masterid`='".$_POST['masterid']."', 
    		`picture`='".md5($_FILES['pic']['name'][$i]).`masterid`.".jpg'")or die (mysql_error());
    	}
    }
    `picture`='".md5($_FILES['pic']['name'][$i]).`masterid`.".jpg'")or die (mysql_error());
    üsteki kısmdaki md5 yerine ürünün idsini düşündüm ama bir türlü yapadım belkide ürünün id sini de verebilsem çözülcek.

    Sizlerin fikri nedir?
  • 26-02-2013, 22:39:42
    #2
    time() eklerseniz sorununuz çözülür.Yani

    md5(time().$_FILES['pic']['name'][$i])
  • 26-02-2013, 22:54:50
    #3
    arasdizayn adlı üyeden alıntı: mesajı görüntüle
    time() eklerseniz sorununuz çözülür.Yani

    md5(time().$_FILES['pic']['name'][$i])
    hocam maalesef olmadı 1.jpg adlı resmi upload ettım sonra diğer ürüne de başka klasördeki 1.jpg adlı klasörü ekledim ikisinide en son yukledığım resime cevirdi :S
  • 26-02-2013, 23:02:02
    #4
    ozaman time() yerine microtime() kullanın
  • 26-02-2013, 23:29:46
    #5
    başka bi düşüncesi olan varmı arkadaşlar
  • 26-02-2013, 23:32:36
    #6
    arkadaşın söylediği işlem doğru fakat sizin kodlarınızın tamamını görmeden %100 bilgi vermek zor zira for'a içinde değilde for dışında time(); kullanırsanız uploaddaki tüm değerler aynı rakamı alacaktır. Eğer veritabanı kaydından sonra resim işlemi yapıyorsanız resme direk söylediğiniz gibi id vermek için

    mysql_query altına

    $sonaydi = mysq_insert_id();

    şeklinde bir değişken tanımlayıp bunu resim ismine dahil edin. bu şekilde çözebilirsiniz
  • 26-02-2013, 23:36:46
    #7
    sorun ne anlayamadım ki yükleyeceğiniz resmin 2 taraftada resim.jpg oldugu varsayıyorum resim adının basına microtime eklediğiniz zaman çıktıları farklı olacak farklı isimlerde kayıt yapacaktır
    örnek soruguyu çalıştırıp çıktıyı inceleyin;

    $resim = 'resim.jpg';
    	for($i=0;$i < 10;$i++){
    	
    	echo md5(microtime().$resim).'<br/>';
    	
    	
    	}
  • 26-02-2013, 23:54:22
    #8
    hocam dediğin doğru fakat ya ben uygulayamadım yada bi tuhaflık var

    şu şekilde kullandım bi yanlışlık varmı

    `picture`='".md5(microtime().$_FILES['pic']['name'][$i]).".jpg'")or die (mysql_error());

    bu şekilde resmi boş ekliyo :S
  • 27-02-2013, 00:08:17
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    ['masterid'] senmi ekledin

    makeSmall makeBiger function nedir bilmek gerekiyo yüklenen resmin linki değişkeni nedir

    mysql_query("insert into `pictures` set `masterid`='".$_POST['masterid']."',
    `picture`='".md5($_FILES['pic']['name'][$i]).`masterid`.".jpg'")or die (mysql_error()); resmi mysql yazdırırken ismini değitiriyosun dosyaya yüklerken diğil zaten bu yanlış

    dosya yükleme tek dosyamı


    makeSmall($_FILES['pic']['name'][$i],$_FILES['pic']['tmp_name'][$i]);




    makeBiger($_FILES['pic']['name'][$i],$_FILES['pic']['tmp_name'][$i]);


    işine yararmı bilmiyorum

    <?php 
    function resimYukle($klasor,$adi,$tipi,$genislik,$yukseklik,$yeniisim){ 
         
    $dosya="".$klasor."".$adi; 
    if(($tipi=='image/jpg') || ($tipi=='image/jpeg') || ($tipi=='image/pjpeg') ){ 
    $resim=imagecreatefromjpeg($dosya); // Yklenen resimden oluacak yeni bir JPEG resmi oluturuyoruz.. 
    }elseif($tipi=='image/gif'){ 
    $resim=imagecreatefromgif($dosya); // Yklenen resimden oluacak yeni bir JPEG resmi oluturuyoruz.. 
         
    } 
    
    
    $boyutlar=getimagesize($dosya); // Resmimizin boyutlarn reniyoruz. 
    
    if($boyutlar[0]<$genislik){ 
        $genislik=$boyutlar[0]; 
    } 
    if($boyutlar[1]<$yukseklik){ 
        $yukseklik=$boyutlar[1]; 
        } 
    
    
    $yeniresim=imagecreatetruecolor($genislik,$yukseklik); // Oluturulan bo resmi istediimiz boyutlara getiriyoruz.. 
    imagecopyresampled($yeniresim, $resim, 0, 0, 0, 0, $genislik, $yukseklik, $boyutlar[0], $boyutlar[1]); 
    $hedefdosya="".$klasor."".$yeniisim.""; // Yeni resimin kaydedilecei konumu belirtiyoruz.. 
    if(($tipi=='image/jpg') || ($tipi=='image/jpeg') || ($tipi=='image/pjpeg') ){ 
    imagejpeg($yeniresim,$hedefdosya,100); // Ve resmi istediimiz konuma kaydediyoruz.. 
    }elseif($tipi=='image/gif'){ 
    imagegif($yeniresim,$hedefdosya,100); // Ve resmi istediimiz konuma kaydediyoruz.. 
    } 
    return $yeniisim; 
    } 
    
    
    
    ## Sef Link Function ## 
    function sef_link($s){ 
        $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','ç','Ç'); 
        $en = array('s','s','i','i','g','g','u','u','o','o','c','c'); 
        $s = str_replace($tr,$en,$s); 
        $s = strtolower($s); 
        $s = preg_replace('/&amp;amp;amp;amp;amp;amp;amp;amp;+?;/', '-', $s); 
        $s = preg_replace('/[^%a-z0-9 _-]/', '-', $s); 
        $s = preg_replace('/\s+/', '-', $s); 
        $s = preg_replace('|-+|', '-', $s); 
        $s = str_replace("--","-",$s); 
        $s = trim($s, '-'); 
        return $s; 
    }  
    
    
    
    
    
    $kaynak        =$_FILES["resim"]["tmp_name"]; // Yüklenen Dosyanın Adı; 
    $klasor        ="hfoto/"; // Hedef Klasor 
    $adi        =$_FILES["resim"]["name"]; // Dosyanın PCdeki Adı 
    $tipi        =$_FILES['resim']['type']; // Dosyanın Tipi 
    $uzanti        =substr($adi,-4); // Dosya Uzantısı 
    
    $rnd        =substr(uniqid(md5(rand())), 0,9); // Dosyayı Yeden İsimlendiriyoruz. 
    
    $fotoisim        = sef_link(substr($adi,0,20)); 
    
    $yeniisim    ="$fotoisim$rnd$uzanti"; 
    
    
    
    $yukle        =$klasor.basename($adi); 
    
        if(move_uploaded_file($kaynak,$yukle)){ 
    
        $imgg1=resimYukle($klasor,$adi,$tipi,660,300,"660X300-".$yeniisim); 
         
        $imgg2=resimYukle($klasor,$adi,$tipi,100,80,"100X80-".$yeniisim); 
         
    
    
    
    
    
        } 
    
    
    
    
    
    ?>
    
    
    
    <form action="" method="post" enctype="multipart/form-data"> 
    			
    
    
    
    
    <fieldset>
    				<label for="">HABER RESMİ</label>
    				<input name="resim" type="file" size="45" maxlength="500"  />
    			</fieldset>
    
    
    
    
    
    
    
    
    	<div class="submit_link">
    				<input type="submit" value="Kaydet" class="alt_btn">
    			</div>
    		
    		</footer>
    	</form>
    
    
    
    
    
    ?>
    calışan hali

    imgg1 buyuk resim imgg2 kucuk resim