• 09-07-2010, 18:56:30
    #1
    Üyeliği durduruldu
    Merhaba
    PHP'de MySQL'e resim ekleme işlemini gerçekleştirmeyi başardım. Kayıt ederken izlenen yöntem şöyle: Resimi photo isimli bir klasöre kayıt ediyor aynı zamanda VeriTabanınada bunun yolunu kayıt ettiriyorum. Sorun şu: Aynı isimde başka bir resim eklediğimde önceki resim siliniyor. Bende resimi dosyaya yüklerken PHP'nin resime otomatik isim vermesini istiyorum. Bunu nasıl yapacağımı bilen arkadaşlar yardımcı olursa sevinirim. Bu yolla aynı isimde resim olmayacak eski olan resimde kalmış olacak. Yardımlarınızı bekliyorum.

    Kendi yaptığım kodlarıda buradan yayınlayayım. Başka birinin işine yarıyabilir.

    "Öcelikle sitenizi çalıştığınız kısıma photo diye bir klasör oluşturuyorsunuz. Daha sonra Veri tabanınıza bir tablo ekliyorsunuz tabloda 2 alan olacak. (id ve yol). bu işlemleri yaptıktan sonra Aşağıdaki PHP kodunu çalıştırırsanız sorun kalmaz. (Ben veri tabanımda resim diye bir tablo olusturdum oraya kayıt ediyorum. İsterseniz sizde aynı şekilde yol izleyebilirsiniz.

    <?php
       if(empty ($_POST['gonder']) ) {
       ?>
        <form action="<? echo $_SERVER['PHP_SELF']; ?>"
       enctype="multipart/form-data" method="post">
       
        resim sec:<input type="file" name="photo">
       <input type="submit" name="gonder" value="gonder">
        </form>
       <?php
       
        }else{
       if(is_uploaded_file($_FILES['photo']['tmp_name']))
        {
        if(move_uploaded_file($_FILES['photo']['tmp_name'],
       "photo/".$_FILES['photo']['name']))
        {
        $url="photo/".$_FILES['photo']['name']."";
        echo "secilen <b>".$url."</b> adli resim<br>\n";
        }
        else
        {
        echo "hata oldu";
        }
        }
       $db=mysql_connect ("localhost","varitabanı ismi","veri tabanı şifresi");
        if(!$db) {
        echo "mysqle baglanamadım".mysql_error($db)."";
        }
        $ds=mysql_select_db("secilecek veri tabanı ismi");
        if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
      
       $veri[1]=trim($url);
      
       $veri_kaydi="insert into resim values ('','$veri[1]')";
        $vsorgu=mysql_query($veri_kaydi);
       if(isset($vsorgu) ) {
        echo "<b>databaseye tasindi</b>";
        }
        else{
        echo "hata oldu";
        }
        }
        ?>
    Yardımlarınızı bekliyorum..
  • 09-07-2010, 19:04:38
    #2
    Eposta Aktivasyonu Gerekmekte
    move_uploaded_file($_FILES['photo']['tmp_name'],"photo/".$_FILES['photo']['name'])

    bu şekilde upload ediyorsun ya,

    $_FILES['photo']['name'] yüklenen dosya ismidir.

    $dosyaismi='photo/'.substr($_FILES['photo']['name'],0,4).substr(md5(rand(0,923423)),3,15);
    yaparsan dosyanin ilk 4 harfine ek olarak rastgele 12 karakterlik bir string değeri ilave eder.Bu şekilde bi isimden bir tane daha olması oldukça güçleşir.Mysql a eklerken de $dosyaismi ne göre eklersin.
  • 09-07-2010, 19:29:50
    #3
    Üyeliği durduruldu
    Dualwarior Çok Teşekkür Ederim Sonunda Oldu...
    Kodun Bitmiş Hali Aşağıdadır Belki yapamayan olabilir. Direk Alabilir.

    <?php
       if(empty ($_POST['gonder']) ) {
       ?>
        <form action="<? echo $_SERVER['PHP_SELF']; ?>"
       enctype="multipart/form-data" method="post">
       
        resim sec:<input type="file" name="photo">
       <input type="submit" name="gonder" value="gonder">
        </form>
       <?php
       
        }else{
       if(is_uploaded_file($_FILES['photo']['tmp_name']))
        {
        if(move_uploaded_file($_FILES['photo']['tmp_name'],
       "photo/".$_FILES['photo']['name'].substr($_FILES['photo']['name'],0,4).substr(md5(rand(0,923423)),3,15)))
        {
        $url='photo/'.substr($_FILES['photo']['name'],0,4).substr(md5(rand(0,923423)),3,15);
        echo "secilen <b>".$url."</b> adli resim<br>\n";
        }
        else
        {
        echo "hata oldu";
        }
        }
       $db=mysql_connect ("localhost","veri tabanı ismi","Veri tabanı şifresi");
        if(!$db) {
        echo "mysqle baglanamadım".mysql_error($db)."";
        }
        $ds=mysql_select_db("Veri tabanı ismi");
        if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
      
       $veri[1]=trim($url);
      
       $veri_kaydi="insert into resim values ('','$veri[1]')";
        $vsorgu=mysql_query($veri_kaydi);
       if(isset($vsorgu) ) {
        echo "<b>databaseye tasindi</b>";
        }
        else{
        echo "hata oldu";
        }
        }
        ?>