8 Mayıs 2017 Pazartesi

Php (Resim Dosyası Yükleme - Veritabanına Ekleme/Çekme)

Posted by Awvare on 11:11 in | 3 comments

<a href="https://www.gcmforex.com/partners/aw.aspx?B=179&A=21614&Task=Click&SubAffiliateID=awvare reklam 1" Target="_Blank"><img border="0" src="https://www.gcmforex.com/partners/aw.aspx?B=179&A=21614&Task=Get&SubAffiliateID=awvare reklam 1" alt="" width="336" height="280"></a>



Uygulamada bir resim dosyasını server'a nasıl yüklenir, veritabanında nasıl saklanır ve veritabanından nasıl çekilir gibi sorulara cevap bulacağız. Resim dosyasını veritabanında ikilik sistemde doğrudan saklamak mümkün olmakla birlikte çok yer kaplamaktadır. Biz bunun yerine resmin gösterileceği sayfaya göre, dosya yolunu veritabanında saklıyoruz ve lazım olduğunda bu yol bilgisini veritabanından çekip resmin görüntülenmesini sağlıyoruz.
Uygulama kodları ve açıklamaları aşağıdaki gibidir.



    /*
    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
    <meta charset="iso-8859-9">
    <title></title>
    </head>
    <body>
    <?php
    $baglanti=mysql_connect("localhost","root","") or die("Mysql'e bağlantı kurulamadı!") ;
    mysql_select_db("deneme",$baglanti) or die("Veritabanına bağlantı kurulamadı!");
    mysql_query("Set names 'latin5'");
    mysql_query("set character set latin5");
    mysql_query("set collation_connection= 'latin5_turkish_ci'");
    if($_POST){//Form gönderildi mi?
    if ($_FILES["resim"]["size"]<1024*1024){//Dosya boyutu 1Mb tan az olsun
    if ($_FILES["resim"]["type"]=="image/jpeg"){//dosya tipi jpeg olsun
    $aciklama=$_POST["aciklama"];
    $dosya_adi=$_FILES["resim"]["name"];
    //Dosyaya yeni bir isim oluşturuluyor
    $uret=array("as","rt","ty","yu","fg");
    $uzanti=substr($dosya_adi,-4,4);
    $sayi_tut=rand(1,10000);
    $yeni_ad="dosyalar/".$uret[rand(0,4)].$sayi_tut.$uzanti;
    //Dosya yeni adıyla dosyalar klasörüne kaydedilecek
    if (move_uploaded_file($_FILES["resim"]["tmp_name"],$yeni_ad)){
    echo 'Dosya başarıyla yüklendi.';
    //Bilgiler veri tabanına kaydedilsin
    $sorgu=mysql_query("insert into resimler (resim,aciklama) values ('$yeni_ad','$aciklama')");
    if ($sorgu){
    echo 'Veritabanına kaydedildi.';
    }else{
    echo 'Kayıt sırasında hata oluştu!';
    }
    }else{
    echo 'Dosya Yüklenemedi!';
    }
    }else{
    echo 'Dosya yalnızca jpeg formatında olabilir!';
    }
    }else{
    echo 'Dosya boyutu 1 Mb ı geçemez!';
    }
    }
    ?>
    <form action="" method="post" name="form1" enctype="multipart/form-data">
    <input type="file" name="resim"/><br/>
    <input type="text" name="aciklama"/><br/>
    <input type="submit" name="gonder" value="Kaydet"/>
    </form>
    <?php
    $sorgu2=mysql_query("select * from resimler");
    if (mysql_num_rows($sorgu2)){
    echo '<table>';
    //Veritabanında resimler listeleniyor.
    while($kayit=mysql_fetch_array($sorgu2)){
    echo '<tr>';
    echo '<td><img src="'.$kayit["resim"].'" width="75" height="75"/></td>';
    echo '<td>'.$kayit["aciklama"].'</td>';
    echo '</tr>';
    }
    echo '</table>';
    }
    ?>
    </body>
    </html>
    */

3 yorum:

  1. Bakkal defteri gibi bu ne..Adam gibi kod editörüne yaz da anlaşılsın dimi.

    YanıtlaSil
  2. Bu kod çalışıyor. Sorun yok. Teşekkürler Mehmet bey.

    YanıtlaSil

  3. Teşekkürler.

    EMEĞE SAYGI DUY VE KES SESİNİ heyaaa!

    YanıtlaSil