Toplam 372 konuya 2405 yorum yazıldı.
Pdo ile Resim Yükleme İşlemi

Merhaba arkadaşlar bu konumuzda sizlerle pdo ile veritabanımıza resim yükleme işleminden bahsedeceğim. Resim yükleme işlemi yapılırken dikkat edilmesi gereken kurallardan bazıları şunlardır.




  • Resim boyutunun maximum değerini belirlemek

  • Hangi resim uzantılarının kabul edileceğini belirlemek

  • Ve resimimizin yeni ismini rasgele bir değer atayarak veritabanımıza kayıt etmek(Güvenlik için)



Evet bunları dikkate aldıktan sonra bir upload formu oluşturalım :)




<form action="resimyukle.php" 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>


Formda dikkatinizi çekmesi gereken kısım input type="file" yani dosya yükleme inputu ve enctype kısmıdır. Enctype kısmı formumuzda bulunmaz ise dosya taşıma işlemi gerçekleşmez.



Şimdi bu formumuzu oluşturduk peki butona basıldıgında post ettiği sayfayı yani resimyukle.php yi nasıl kodlayacağız onada bakalım.. :)




if($_POST){

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"];

//Resimi kayıt ederken yeni bir isim oluşturalım
$uret=array("as","rt","ty","yu","fg");
$uzanti=substr($dosya_adi,-4,4);
$sayi_tut=rand(1,10000);

$yeni_ad="uploadklasoru/".$uret[rand(0,4)].$sayi_tut.$uzanti;

//Dosya yeni adıyla uploadklasorune kaydedilecek

if (move_uploaded_file($_FILES["resim"]["tmp_name"],$yeni_ad)){
echo 'Dosya başarıyla yüklendi.';

//Bilgileri veritabanına kayıt ediyoruz..

$sorgu = $db->prepare("INSERT INTO resimler SET resim=:resim,aciklama=:aciklama");

$sorgu->execute(array(':resim'=> $yeni_ad,':aciklama'=>$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!';
}
}
?>


Yüklediğimiz resimleri nasıl çekeriz dersenizde onuda şöyle yaparsınız :)




<?php

$resimler = $db->prepare("SELECT * FROM resimler");
$resimler->execute();

if($resimler->rowCount()){

foreach($resimler as $row){

?>

<img src="<?php echo $row["resim_sutunu_ismi"];?>" alt="Resim" />

<?php
}

}else{

echo "Resim bulunamadı";

}

?>


İşlemimiz bukadar arkadaşlar çok kısa bir süre sonra tüm ekledigim derslerin videolu halinide çekip sizlerle paylaşacağım takipte kalmaya devam ederseniz sevinirim :)



Kolay gelsin arkadaşlar..




Yorumlar

Arda Çiçek

03.04.2020 13:38

Çok güzel bir yazı olmuş eline sağlık yavuz abi

Ahmet

29.03.2020 20:20

Sayın hcm bunu çoklu resim yükleme şeklinde yapmamız mümkün mü?

elif

14.11.2019 13:12

hocam ayni anda birden fazla resim yuklemek istersek de ayni kodlar mi gecerli olacak? degisiklik yapmak gerekir mi?

Detay 24

13.04.2019 04:09

Pdo Weri tabanı örneği göstermeniz mümkünmü hocam yani bu içeriğe ait olan bir veri tabanı olması gerekmiyormu ?

Ahmet

28.01.2019 20:24

Senin sitedeki konular sayesinde çözdüm bu php olayını mükemmel bir site içeriği oluştırmuşsun.

Bumutfak

23.11.2018 08:06

çok teşekkür ederim hocam , daha önce denemiştim ama nedense yapamamıştım

PHP tabanında teknolojik gelişmeleri takip eden biri olarak, PDO ile çok rastlanan bir sorunun cevabını vermenizden çok mutlu oldum. Teşekkürler.

Doktor Ne Der

23.10.2018 22:59

Çok büyük problemdi benim için. Ta ki bu makaleyi görene kadar. Gerçekten kaliteli bir paylaşım. Teşekkür ederim.

Seviyeli sohbet

21.06.2018 09:11

PDO ile artık veri tabınına rahatlıkla resimleri çekebiliyorum. Makaleniz sayesinde pdo ile rahatlıkla resim çekebiliyoruz ancak bu resimleri çoklu olarak çekemezmiyiz?

ömer

13.06.2018 20:40

Merhaba kolay gelsin ; Makalenizi inceledim ve uyguladım ellerine sağlık. Galeri için php pdo ile çoklu resim kayıt etme , görüntüleme işleleri ile ilgili makale veya örnek kodlar gösterebilirmisiniz

erdem

10.12.2017 19:04

hocam kayıt başarılı. fakat resim cekiyor, ama resim gözükmüyor neden ?

Fevzi

19.02.2017 07:35

Selam kardeşim emeğine sağlık. Bir sorum olacak. Hani emlak scriptlerindeki gibi ya da alışveriş scriptlerindeki gibi br konuya birden fazla resim yükleyip resim yolunu alma olayı nasıl olur bu yazdığın kodlar üzerinden. mantığını kuramadım bir türlü. Yani konu-id olacak ve o konuya atıyorum 10 tane resim diğerine 5 tane resim falan yüklenecek ama id leri görüp ona göre nerede görüneceğini anlayacak şekilde anlatabilmişimdir umarım

withcom

15.02.2017 08:59

$sorgu = $db->prepare("INSERT INTO resimler resim=:resim,aciklama=:aciklama"); INSERT INTO resimler SET.... Olması gerekli değilmi aksi taktirde veritabanına resim bilgilerini kayıt etmiyor :) teşekkürler

Mustafa

01.12.2016 07:00

Merhabalar Hocam Öncelikle Yazı Çok Faydalı Olmuş. Emeğinize Sağlık. Yalnız bir sorum olacaktı benim denediğim bir script te mantık üyeler resim upload edip paylaşabildiği bir ortam var. Devamında her şey güzel gerekli ayarları ben yaptım. çözemediğim tek şey db kayıt ederken türkçe karakter filtresinden geçiremedim çünkü upload mantığı çok karışık gibi birazda acemiyim php kod konusunda sanırım yönlendirmeler laravel ile yapılmış yani ayar dosyasını form action="" şeklinde çağırıyor. resim adına pic_url verilmiş. ama fonksiyonlarını bulamadım. Yardımcılarınız için şimdiden çok teşekkürler.

YAVUZ SELİM ŞAHİN

25.10.2016 12:21

@Selim if ($_FILES["resim"]["type"]=="image/jpeg"){ bak bu kısımda belirtilen dosya tipi sadece jpeg yüklenebilir diye filtreleme yapmışız :) Ayrıca pdo oldugundan dolayı çogu tırnak ve sql injection gibi açıkları tamamen kapatıyor bu normal resim yükleme resim yükleme için verot net sınıfını öneririm onunla ilgilide bir örnek yapacagım en kısa sürede :) bu şekildede resim yükleyebilirsin shell yediremezler bu komutlarla sunucu tarafında açıgın var ise bilemem tabi sunucunda başka domaine girip dizinler arası geçişi kapatmadıgın için tüm domainlerine erişim sağlar shell atan adam sadece yazılım olarak değil sunucu olarakta güvenliği sağlamak zorundasın :)

Selim

25.10.2016 11:54

sadece bu kod güvenli mi? shell yedirmezler mi?

Bu kodlar başlangıç aşamasındaki kişiler içindir. Güvenlik konusunda büyük sorunlar oluşturur. O yüzden gerçek websitesi projelerinde kullanılmasını tavsiye etmem.

Oğuzhan

04.09.2016 20:45

Hocam çok teşekkür ederim. Çok işime yaradı

YAVUZ SELİM ŞAHİN

10.08.2016 18:41

ahmet if ($_FILES["resim"]["type"]=="image/jpeg"){ bölümünde belirtebilirsin istediğin tipleri.

ahmet

10.08.2016 16:14

hocam çoklu resim yüklemek istersek ve png gif gibi formatları desteklesin istersek nasıl yapıcaz ?

Yorum Yaz