PHP İle Veritabana Belge Aktarımı | alicangonullu.biz

PHP İle Veritabana Belge Aktarımı

Merhabalar!

Bu yazımda sizlere PHP ile güvenli bir şekilde belge nasıl yüklenir bunu göstereceğim. Keyifli okumalar dilerim.  

Öncelikle Blob Nedir bunu açıklamamız lazım.

Blob : Verilerin base64 şeklinde veritabana yazılmış halidir. Bu bazı zaafiyetleri engeller. Avantajı bu. Devavantajı ise çok fazla veritaban trafiği ister.

Bu kısa tanımdan sonra kodlara geçelim isterseniz ?

Ilk önce veritabanımızı şu kodla oluşturalım :

CREATE TABLE `god3err_galeri` (
  `id` int(11) NOT NULL,
  `baslik` varchar(64) CHARACTER SET utf8 NOT NULL,
  `ext` varchar(8) CHARACTER SET utf8 NOT NULL,
  `zaman` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `data` mediumblob NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

Oluşturduktan sonra PHP dosyamıza ilk satırla girelim.

$kabul = array('jpg','png','gif','pdf');

Burada kabul edilen uzantıları girdik ve bunları şimdi kontrol ettirmeliyiz. If döngüleri burada işimize yarayacak.

if(isset($_FILES['resim']) && $_FILES['resim']['error'] == 0){
$uzanti = pathinfo($_FILES['resim']['name'], PATHINFO_EXTENSION);
if (in_array(strtolower($uzanti), $kabul)) {
//Veritaban Işlemleri
} else {
     echo '<script>
	alert("HATA : Dosya Uzantısı");
	window.location = "index.php"
	</script>';
    exit;
}

Bu şekilde kontrolü sağladık. Şimdi veritaban kısmına bakalım ne dersiniz ?

$update = $db->prepare("INSERT INTO galeri(baslik, data, zaman, ext) VALUES (:title, :data, :imgzaman, :ext) ");
$update->bindValue(':title', $_FILES['resim']['name']); //resmin adı
$update->bindValue(':imgzaman', date('Y-m-d H:i:s')); // yüklenme zamanı
$update->bindValue(':ext',  $_FILES['resim']['type']); // uzantıyı aldık
$update->bindValue(':data', file_get_contents($_FILES['resim']['tmp_name'])); //veriyi aldı
$db->beginTransaction();
$update->execute();
$db->commit();

//if döngüsü

if($update){
echo '<script>
alert("Başarılı");
window.location = "index.php"
</script>';
}
 else {
	 echo '<script>
	 alert("Başarısız");
	 window.location = "index.php"
	 </script>';
 }

Ve böylece veritabana belgemizi ve resmimizi aktardık. Sorularınız için yorum kısmını kullanabilirsiniz.

Okuduğunuz için teşekkürler.


Belge / Video Eki
Belge / Video Eki Yok

Ali Can Gönüllü | Blog