İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

MYsQL ile resim upload etme

HeRCai

0
İyinet Üyesi
Katılım
22 Aralık 2010
Mesajlar
10
Reaction score
0
Arkadaslar ,

Ben bir ekle.php adinda dosya yaptim ve bunun icine bir form olusturdum.Bu form 2ci el araba ekleme formu.Araba icin gerekli bilgileri yazip gonder dedigimde butun bilgiler databasse yani mysql aracigi ile tabloya yaziliyor ve listele.php sayfamdada listeleyebiliyorum.

Benim sorunum ekle.php dosyasinda bilgileri yazdikdan sonra 4 5 adette mysql ile resim upload ettirip.listele.php sayfasinda resim ile bilgileri gostermek istiyorum.Resim upload bolumunu yapamadim.Nasil mysql ile resimi upload ettirecegim? Bu konuda bilgisi olan yardimci olursa sevinirim.

Saygilar
 

Shu

0
İyinet Üyesi
Onaylı Üye
Katılım
11 Ocak 2011
Mesajlar
891
Reaction score
25
Konum
Bingöl
Bak şöyle yapabilirsin.

Resim adresini veri tabanına yazdır, örneğin veri tabanı adımız resimurl olsun

sen bunu sayfaya çektiğinde başına <img src=" tagını eklersen listele.php'de otomatik resim olarak gözükür bu daha kısa yol. Upload etmektense en iyisi bu :)
 

Lansewebtr

0
İyinet Üyesi
Katılım
30 Aralık 2010
Mesajlar
256
Reaction score
3
öncelikle upload bölümü olacak. upload edilmiş dosyanın adı veritabanına, kendisi ftp ye kayıt olacak.
(örnek veritabanı kayıt adı:
Kod:
ilanno sütunu için 3 5 her neyse artık kaçıncı ilan sa
uyeno sütunu için 37547 ( session açmışsan ordan üye numarasını alabilirsin )
resimurl sütunu için arabam1.jpg ( upload dan gelen dosya bilgisi (filename) )

ve örnek ftp deki yer
Kod:
resimler/upload/uye37547/arabam1.jpg
)
daha sonra bunu liste sayfasında okuturken ( $oku değişkeninde mysql_fetch_array la bilgileri alman lazım )
PHP:
<img src="resimler/upload/uye<?=$oku['uyeno']?>/<?=$oku['resimurl']?>" width="40" height="40" />
 

HeRCai

0
İyinet Üyesi
Katılım
22 Aralık 2010
Mesajlar
10
Reaction score
0
Arkadaslar cevabiniz ve ilginiz icin tsk ederim,

Ben mysql ile verileri ekle.php de formda bos yerleri dolduruyorum ekle dedigimde direk listele.php sayfasinda listeleniyor.Hangi resim hangi bilgiye ait oldugunu ayirabilmem gerekiyor.Mesela arabanin bilgilerini doldurdum en alttada 3 tane resim ekledim sonra ekle dedigimde listele sayfasinda resim ve bilgileri ciksin.Yani verileri recorset olusturarak yapiyorum.

Resimi mysql da tablo olustururken veri turunu ne secipde yapabilirim.Yaklasik 2 haftadir ugrasiyorum.Bildiklerimde birbirine karisti inanin.

Saygilar

Ekleme: adminimiz reklam olarak saymazda yayinlarsa linki vereyim daha iyi anlarsiniz ben belki anlatamiyorum,


Saygilar
 
E

Erturk

Misafir
Merhaba

Öncelikle form yapını şu şekilde değiştirmelisin.

PHP:
<form action="" method="post" enctype="multipart/form-data">

action kısımına; formdan gelen verileri veritabanına işleyen dosyanın adını yazacaksın. Eger ekle.php içerisinde hallediyorsan boş kalabilir.

ekle.php sayfandaki Fotos alanının karşısına bir file input açman gerekiyor. Aşağıdaki kodu o alana ekle.

PHP:
<input name="resim" type="file"/>

Şimdi veritabanında arabaları eklediğin o tabloya resim diye bir alan açacaksın. 100 karakter limitli bir text yada varchar degeri verebilirsin.


PHP:
if (@$_FILES['resim']) {
$resim = @$_FILES['resim']['name'];  
$kaynak = $_FILES['resim']['tmp_name'];
$hedef = "../resimler/";
$uzanti	= substr($resim, -4);
if ($uzanti == '.jpg' || $uzanti == '.JPG') {
$yeniad = substr(md5(uniqid(rand())), 0,5);
$yeniresimadi = $yeniad.$uzanti;
$yukle = @move_uploaded_file($kaynak,$hedef.'/'.$yeniresimadi);
} else {
$yeniresimadi ="resimyok.jpg";
}
}

Bu kodları veritabanına ekleme yaptırdıgın dosyana eklemen gerekiyor şimdi. Eger form butonuna basılıp basılmadıgının kontrolünü ekle.php de yaparak işlem yaptırıyorsan bu yazdıgım kodları o if içerisine almalısın.


Dosya upload kodumuz hazır. resimler diye bir klasor açman gerekiyor şimdi ana dizinde. Sonrada yeni bir isim verdiğimiz araba resimini sql ekleyeceğiz. Bunun için yapman gereken tek şey ilanı eklerken kullandıgın sql sorgusuna aşağıda kalın yazdıgım sekilde ekleme yapmak

PHP:
$sorgu = mysql_query("insert into ilanlar (ilanadi,ilansuyu,ilanbuyu,ilanoyu,[B]resim[/B]) values('$ilanadi','$ilansuyu','$ilanbuyu','$ilanoyu','[B]$yeniresimadi[/B]')");

Bu alanı kendi sql sorguna göre düzenlersin. Kalın yazdıgım yerleri dikkate alman gerekiyor ama.

İlan resimimizi sitemize upload ettik ve bu resime verdiğim izimi sql e yazdırdık. Şimdi listelemeye gelecek olursak bütün kayıtlar için ufak bir sorgu yapayım...

PHP:
$sorgu = mysql_query("selet * from ilanlar order by id desc");
if(mysql_num_rows($sorgu) <1) {
echo 'Şu an sistemde ekli bir ilan bulunmuyor.';
} else {
while($yaz = mysql_fetch_assoc($sorgu)) {
echo '
<img src="resimler/'.$yaz['resim'].'"/><br/>
<b>İlan Adı :</b> '.$yaz['ilanadi'].'<br/>
<b>İlan Şuyu:</b> '.$yaz['ilansuyu'].'<br/>
<b>İlan Buyu :</b> '.$yaz['ilanbuyu'].'<br/>
<b>İlan Oyu :</b> '.$yaz['ilanoyu'].'
';
}
}

Genel olarak mantığını açıklamak gerekirse;

İlk verdiğim php kod ile upload etmek istediğin resimin uzantısını kontrol ettik ve 5 karakterli birbirine hiç benzemeyecek rasgele bir isim verdik. Sonrada uzantısını ekledik ve resimler klasörüne yukledik. Örnegin IMG_054874.jpg diye yuklediğin resimi bu kod ile a7eq4.jpg gibi bir isim aldı ve sql sorgun sayesinde ilanlar tablosundaki resim alanına bu isim yazdırıldı. Eger ilan eklerken resim kullanmazsan otomatik olarak resimyok.jpg diye bir isim yazdıracak veritabanına. Resimler klasorunede resimyok.jpg diye bir resim atıp URUN RESIMI BULUNMUYOR gibi bir yazı koyabilirsin.

Önemli : resimler klasörünün CHMOD ayarları 777 olması gerekmektedir.

Her ilan eklediğinde farklı bir id numarası alan ilanın haliyle farklı bir resimde alacak. Bu nedenledir ki ister toplu listele istersen tek tek, <img src="resimler/'.$yaz['resim'].'/> yazdıgın an o ilana ait olan resim sitendeki resimler klasorunden cagırılır ve ekrana yazdırılır.

Umarım anlatabilmişimdir, umarım anlamışsındır...

Kolay gelsin.
 

HeRCai

0
İyinet Üyesi
Katılım
22 Aralık 2010
Mesajlar
10
Reaction score
0
erturk kardes tsk ederim aciklaman ve zahmetin icin su kismi anlayamadim

Bu kodları veritabanına ekleme yaptırdıgın dosyana eklemen gerekiyor şimdi. Eger form butonuna basılıp basılmadıgının kontrolünü ekle.php de yaparak işlem yaptırıyorsan bu yazdıgım kodları o if içerisine almalısın.

o kodu tam olarak nereye koyacagim. ekle.php ye koymak istiyorum.

saygilar
 

Lansewebtr

0
İyinet Üyesi
Katılım
30 Aralık 2010
Mesajlar
256
Reaction score
3
formdan gelen bilgileri alıp işlediğin yere koyucaksın işte. bu arada sağol Erturk hocam uğraşmışsın akşam akşam :)
 

HeRCai

0
İyinet Üyesi
Katılım
22 Aralık 2010
Mesajlar
10
Reaction score
0
Oncelikle erturk arkadasima ve diger konu ile ilgilenip cvp yazan arkadaslara da ayrica tesekkur ederim ,

Erturk kardes cok guzel anlatmissin tskler fakat ben cozemedim bu olayi, birde ben sizin verdiginiz kodlari isledim ve suan tabloyu aktif duruma getirdim.Suan sorunun oldugu sekilde ekle.php duruyor.Bir daha goz atarsaniz daha iyi anlayacaksiniz sorunu.
Mesela action kismina upload.php veremiyorum cunki ben dreamweaver ile yapiyorum tasarimlarimi , databasse baglaniyorum ve insert record yapiyorum.
insert record yaptigimdada action kismi degisiyor.

suan yazdigim verileri ekle dedigim anda direk phpmyadmin de yani mysql da ekleniyor.

ekle.php ve listele.php de sorunum yok.

Ben sadece resimi siteye upload edip - databasse link veya yolunu geciremiyorum.Istiyorumki yazdigim veriler gibi mysql daki tablodaki resim alaninin karsisina link gelsin veya nasil oluyorsa.

Ekle.php sayfasini doldurup ekle dedigimde mysql su sekilde ekleniyor.



resim talo turunu baska bir tur mu secmem gerekiyor acaba ?

Resim alaninada browse deyip pc den resim seciyorum.ekle dedigim de resim alani bos birakilamaz diyor.



resimler dosyasinin chmod ayarinida 777 yaptim.


insallah anlatabildim.

Saygilar
 
E

Erturk

Misafir
94e62767.png


Ekle tablosu içerisinde yeni bir alan açacaksın resim diye dostum. Zaten sonrasını detaylı bir şekilde anlatmıştım.
 

HeRCai

0
İyinet Üyesi
Katılım
22 Aralık 2010
Mesajlar
10
Reaction score
0
Ben bu linkde gosterdigim gibi ekle tablosunda resim diye bir alan actim.

Ama o alana gitmiyor link

Tesekkurler
 

zazagame

0
İyinet Üyesi
Katılım
23 Şubat 2011
Mesajlar
141
Reaction score
3
Konum
Bursa
Ya sen şöyle yapsan olur aslında bak şimdi tam anladıysam mantığı anlatıyım. :) Şimdi Forma resim eklemek için bir yer var.Resim eklemek için şöyle bir kod yazsan;
PHP:
<form method="post" action="yönlenecek sayfa" enctype="multipart/form-data"><input name="resim" type="file" min="1" max="3" multiple />
<input type="submit" value="Yukle">
yukarıda input name belirledik adıda resim.Şimdi veritabanında resim adlı bir veri oluştur.Diğer sayfada Post ile resimi çek.(Yukarıda belirttiğimiz input nameyi alıcaz.)
PHP:
$resim=$_POST['resim'];
$resimekle = mysql_query("UPDATE tablo SET resim='$resim'");
Yukarıda Mysql Update ile kullanıcının yüklediği resmi bizim veritabandaki resim verisine eşitledik.Yani resim verisi kullancının yüklediği resim oldu.Buna görede yansıtırsın.
İlk eklediğim kod işe yaramazsa şu şekil dene;
PHP:
<form method="post" action="yönlenecek sayfa" enctype="multipart/form-data"><input name="resim[]" type="file" min="1" max="3" multiple />
<input type="submit" value="Yukle">
Bu şekil belki olmaz.Birde şu mantıkla dene.Resmin bulunduğu yeri veritabanına önceden ekle.Ordan direk çek.Oda olmazsa;
Gözat butonu yerine kullanıcı resmin linkini yazsın.Kullanıcı resmin linkini yazıp resmi eklerse ilk söylediğim yöntem birebir çalışacaktır.Bunlardan hiçbiri olmazsa Erturk hocamın söyledikleri gayet mantıklı. ;)
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst