Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

veritabanına resim dosyası eklemek

Konu, 'PHP' kısmında osman tarafından paylaşıldı.

  1. osman

    osman Üye

    Kayıt:
    6 Ocak 2003
    Mesajlar:
    112
    Beğenilen Mesajlar:
    0
    Merhaba arkadaşlar ben veritabanına resim eklemek istiyorum bu konuda yardımlarınızı rica ediyorum şimdiden teşekkürler
     
  2. LEthaL

    LEthaL Daimi Üye

    Kayıt:
    8 Kasım 2002
    Mesajlar:
    601
    Beğenilen Mesajlar:
    0
    Meslek:
    0grEnmEk :p
    Şehir:
    Sakarya
    Veritabanından kasıt MySQL mi?
    Öyleyse sadece yolunu göstersen daha kolay olur. :)
     
  3. osman

    osman Üye

    Kayıt:
    6 Ocak 2003
    Mesajlar:
    112
    Beğenilen Mesajlar:
    0
    evet veritabanı mysql . bir form ile ziyaretcinin bilgisayarındaki resmi veritabanına aktarmak istiyorum
     
  4. LEthaL

    LEthaL Daimi Üye

    Kayıt:
    8 Kasım 2002
    Mesajlar:
    601
    Beğenilen Mesajlar:
    0
    Meslek:
    0grEnmEk :p
    Şehir:
    Sakarya
    Bir tane form hazırlıyoruz. Formun özelliklerinden

    enctype="multipart/form-data"

    dedikten sonra formun içine şunu ekliyoruz.

    <input name="dosya_sec" type="file">

    Bu oluşan formdan dosyayı gönderdiğin zaman otomatik olarak.
    dosya_sec_name , dosya_sec_type , dosya_sec_size adıyla 3 tane değişken yaratılıyor.

    Dosyayı göndermek için
    PHP:
    move_uploaded_file($dosya_sec_name,$upload_dir)
    dedikten sonra veri tabanına dosyanın sadece adını kaydediyoruz; o da şöyle:

    PHP:
     mysql_query("insert into <tabloadı> (dosya) values ('$dosya_sec_name')"); 
    Bu kadar :)
     
  5. osman

    osman Üye

    Kayıt:
    6 Ocak 2003
    Mesajlar:
    112
    Beğenilen Mesajlar:
    0
    çok yardımcı oldun. teşekkür ederim.
    dosyayı görebilmek için
    $result=mysql_query("select * from tabloadı ");
    while($row=mysql_fetch_array($result))
    {
    echo $row[dosya];
    }
    yeterlimi?
     
  6. Mingitau

    Mingitau Misafir

    echo $row[dosya] kısmını <img> etiketinin src tag ına yaz :)
     
  7. osman

    osman Üye

    Kayıt:
    6 Ocak 2003
    Mesajlar:
    112
    Beğenilen Mesajlar:
    0
    teşekkür ederim
     
  8. Hard`n`Dark

    Hard`n`Dark Aktif Üye

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    340
    Beğenilen Mesajlar:
    0
    Meslek:
    kölelik
    Şehir:
    34
    bi sorum olacak : resim database'de mi tutulmali?
    db'de sadece path tutulsa performans acisindan daha iyi olur gibi geliyor..
    peki eger oyleyse o zaman neden database'de resim tutabilme gibi bi sansa sahibiz? :)
     
  9. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Belkıde herseyı derlı toplu ısteyenler ıcındır :) Yanı resımlerde verıtabanında oldugu ıcın resımlerı ayrı verıtabanını ayrı yedeklemen/tasıman/sılmen/eklemen gerekekmez.. Ve sadece resımlerı degıl sanırım bınary olarak dıledıgın her turden dosyayı verıtabanı ıcınde saklama ımkanına sahıpsın.. Hem belkı boylesı daha guvenlıdır..

    Ayrıca resim adında bır tabloda id, blob seklınde ıkı alan acıp ornegın haber tablosunun resim alanı ıcınde bu ıd degerını kullanırsan en azından haber tablosunu sorgularken sıkıntı cekmezsın..
     
  10. LEthaL

    LEthaL Daimi Üye

    Kayıt:
    8 Kasım 2002
    Mesajlar:
    601
    Beğenilen Mesajlar:
    0
    Meslek:
    0grEnmEk :p
    Şehir:
    Sakarya
    +1 Ayrıca resmi veritabanına aktarırken binary (0-1) lere çevirmek zahmetli değil ama onu göstertmek veya bilgisayara indirtmek epey zahmetli oluyor. :S
     
  11. acemi

    acemi Misafir

    Veritabaninda, resimlerin de tutulabildigi binary alan tipleri (MySQL'deki blob gibi) sadece resim kaydedilsin diye yapilmamistir, cok farkli amaclar icin kullanilabilecek binary verileri tutabilirler.

    Ayrica veritabanlari, link'ten anlamayan uygulamalarla birlikte de kullaniliyor. Her veritabani uygulamasi mutlaka web tabanli olmuyor. Bu durumda, link bilgisini almak da pek kullanisli olmuyor.

    Web tabanli uygulamalarda ozel bir durum yoksa, resim yerine link'in veritabanina kaydedilmesi bence daha pratik.
     
  12. yasin_yýldýrým

    yasin_yýldýrým Yeni Üye

    Kayıt:
    31 Mart 2003
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    resim gösterme

    selam
    echo "<td height=\"35\">&nbsp;" .
    $sira["DOSYA"] . "</td>\n" ;
    kodu ile dosya adını görebiliyorum fakat adın üzerinde link olsun istoyorum bunun için
    $sira "<a href=\"DOSYA"\>.</a>"."</td>\n";
    bu kodu yazıyorum fakat olmuyor .yardımcı olursanız sevinirm

    ::(((
     
  13. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    PHP:
    $sira "<a href=\"DOSYA"\>.</a>"."</td>\n";
    Sanırım burda bır mantık hatası var.. $sira adında bır dızı degıskenı ıcınde "DOSYA" anahtarına sahıp ındekslerınde dosya adlarına saklıyorsan yapman gereken su:

    PHP:
    $sira["DOSYA"] = "resim.gif";
    $sira["YOL"]   = "http://www.site.com/resim";

    echo 
    '<td heigt="35"><a href="'.$sira["YOL"].'/'.$sira["DOSYA"].'">'.$sira["DOSYA"].'</a></td>';
     
  14. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Selamlar.
    Öcelikle. Tekrar belirmem gerekicek.

    Artık php.ini register_globals = on olaraktan gelmiyor. Lütfen örneklerimizi ona göre verelim.

    veri tabınına bir binary dosya eklemek istiyorsanız yapmanız gerekenler şunlar.

    veri tabınıza 2 adet sütün ekleyin

    `mimetype` VARCHAR(255) ve `binary` LONGBLOB

    daha sonra dosyanızı okuyun.
    PHP:
    <?php $read fread($filefilesize($file)); ?>
    gibi ardından

    birde bu şeyleri veri tabanından okumamız için gerekli dosyayı yaratalım.

    PHP:
    <?php
     
    if (empty($_GET['id'])) { header('Location: ./index.php'); } 
     require_once(
    './config.inc.php');

     
    $id $_GET['id'];
     
     
    $_QUERY $db->sql_query('SELECT `mimetype`, `fname`, `binary` FROM `kod` WHERE `id` = '$_GET['id'] .' AND `durum` = 1 LIMIT 1');
     if (
    $db->sql_numrows($_QUERY) < 1) {
      echo 
    'Aradýðýnýz dosya bulunamadý. <a href="'.[url]www.[/url]'">Ana Sayfa</a>';
      exit;
     }
     
    $row    $db->sql_fetchrow($_QUERY);
     
    header('Cache-control: private');
     
    header('Content-Type: '.$row['mimetype']);
     
    header('Content-Disposition: filename='.$row['fname']); 
     echo 
    $row['binary'];
     
    $db->sql_query('UPDATE `vt` SET `goster` = `goster`+1 WHERE `id` = '.$_GET['id']);
     exit;
    ?>
    not: bu kodlar kendi sitem için hazırladığım kodlardır. 2 haftaya kadar kodları GLP lisansı ile yayınlayacağım. Kolay gelsin.
     
    Son düzenleme yönetici tarafından yapıldı: 31 Mart 2003
  15. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    unutmadan bazen basit hatalardan dolayı bütün program durabiliyor.

    Eğerki hatalarınızı daha rahat yakalamak ve karmaşadan kurtulmak istiyorsanız.

    Noktalama kuralları, noklama işaretleri (``) gibi şeylere dikkat edin.
    Özelliklede elinizden geldiğince program içerisinde herhangi bir direkt çıktı çok gerekmedikce kullanmayın. İnternet üzerinden bir çok template kütüphanesi edinebilirsiniz. Ben PHPbb nin kütüphanesini kullanıyorum. Veri tabanı işlevlerimdede gene bir kütüphane kullanıyorum.

    Ayrıca programınızın geliştirim süreci içerisinde
    Kod:
    error_reporting(E_ALL)
    satırını her zaman programınızın başına yerleştirin böylece daha fazla hata bulursunuz :D
     
  16. yasin_yýldýrým

    yasin_yýldýrým Yeni Üye

    Kayıt:
    31 Mart 2003
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    databasede resim çagırma

    slm
    database ekeldigim resim dosyasını linkli olarak görmeye çalışıyorum .

    database
    move_uploaded_file($dosya_sec_name,$upload_dir)
    mysql_query("insert into <tabloadı> (dosya) values ('$dosya_sec_name')");
    yazarak gönderdim ve tek sutunda gönderdiğim dosyanın adını görebiliyorum ama üzerine link veremiyorum
    şimdeden tşk
     
  17. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Yasin sanırım yazımı okumadın.
    register_globals artık on değil off olaraktan geliyor.

    yani inputbox'ın ismi resim ise $resim_name gibi bir değişken otomatik yaratılmıyor.

    Onun yerine $_FILES['resim']['name'] die bir değişken yaratılıyor.

    ayrıca anlatmak istediğini birazcık daha acarmısın.
     
  18. yasin_yýldýrým

    yasin_yýldýrým Yeni Üye

    Kayıt:
    31 Mart 2003
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    databasede resim çagırma

    slm
    bizde register_globals=On databse text türünden bir alan açtım ve bu alana dosyayı
    move_uploaded_file($dosya_name,$upload_dir)
    ile gönderdim.görmek
    echo "<td height=\"35\">&nbsp;" .
    $sira["DOSYA"] . "</td>\n" ;
    kodu böyle kullanınca dosyanın adını getirıiyor.
    işte benim sorunum burda başlıyor çünkü orada yazan resim dosyaya linkle göndermek istiyorum
    tşk
     
  19. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Iznınle bı kac sorum olucak,

    1. $dosya_name ve $upload_dir degıskenlerı nerden gelıyor?
    2. move_uploaded_file($dosya_name,$upload_dir) ıle actıgın alana bısey yazmak arasında nasıl bır bag var?
    3. $sira[] dızısı nerden gelıyor? Ve ıcerıgı ne?
    4. Bıze su kodların tamamını gondermen mumkunmu?

    Sımdı su konuyu bıraz daha acıp tane tane bır anlatımla sorunun ne oldugunu ızah edebılırmısın? Bızde varsayımlardan hareket edıp yanıltıcı cevaplar vermekten kurtulmus oluruz..

    Not: Sakın yanlıs anlama.. Sana yardım edebılmem ıcın bu soruların yanıtlarına ıhtıyacım var..
     
  20. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Yasincim dosyanı veri tabanına yazdırmıyorsun. sadece ismini yazdırıyorsun.