Veritabanına resim ekleme
Genelde kullanıcılara upload yaptırarak resimler klasörlerde saklanır. Güvenlik açıkları yüzünden bu yöntem pek iyi değildir. Resimleri veritabanında saklamak bazen daha makul gelebilir. Eğer geniş veritabanı alanınız varsa bence bu yöntem daha mantıklı. Sadece upload yapılan resimler değil sitenin içeriğinde kullanılan resimlerde bu yönemle veritabanında tutulabilir. İşte resimleri veritabanında saklamak için örnek kodlar:
PHP:
-
<?php
-
# Kodlama: Burak Dönmez [Private] (webmaster@phpkolik.com)
-
# Her türlü geliştirmeye açıktır.
-
# Sorularınız, öneriler ve script hataları için e-posta yoluyla iletişime geçebilirsiniz.
-
# 15 Temmuz 2007, Pazar
-
# http://www.phpkolik.com
-
-
/*
-
CREATE TABLE `resimler` (
-
`id` int(11) NOT NULL auto_increment,
-
`isim` varchar(10) NOT NULL,
-
`grafik` longtext NOT NULL,
-
`format` varchar(15) NOT NULL,
-
PRIMARY KEY (`id`)
-
) ENGINE=MyISAM;
-
*/
-
-
// veritabanına bağlanıyoruz
-
-
// eğer get metodu ile dosyaya istek gönderirsek veritabanına kaydettiğimiz resimler ekrana bastırılacak
-
// örnek kullanım: image.php?id=1
-
if ( $_GET['id'] )
-
{
-
$Temp = @mysql_fetch_assoc(@mysql_query("SELECT * FROM `resimler` WHERE ( `id` = ".$_GET['id']." );"));
-
}
-
-
// eğer formdan resim seçip gönderirsek veritabanına kaydetme işlemi yapılacak
-
if ( $_POST['gonder'] )
-
{
-
$Encode = base64_encode(file_get_contents($_FILES['image']['tmp_name'])); // resmimizi veritabanına kaydedilmek üzere kod haline getiriyoruz
-
$Type = $_FILES['image']['type']; // resmin formatını öğreniyoruz
-
-
if ( $Name && $Encode && $Type ) // eğer bütün değişkenler kullanılabilir durumdaysa veritabanına kaydetme işlemine hazır demektir
-
{
-
$Query = @mysql_query("INSERT INTO `resimler` (`isim`,`grafik`,`format`) VALUES ('".$Name."','".$Encode."','".$Type."')");
-
}
-
else // değişkendler boş kaldıysa uyarı verdiriyoruz
-
echo 'Resim seçmediniz';
-
}
-
-
echo '
-
<form action="'.$_SERVER['PHP_SELF'].'" method="post" enctype="multipart/form-data"> <input name="image" type="file" /> <input value="Gönder" name="gonder" type="submit" /> </form>';
-
-
$Query = @mysql_query("SELECT * FROM `resimler`"); // tüm resimleri veritabanından okutmak için seçiyoruz
-
-
echo '
-
<ul>';while ( $Temp = @mysql_fetch_assoc($Query) ) // ön izleme olarak while döngüsünde hepsini ekrana bastırıyoruz
-
{
-
echo '
-
<li><a href="'.$_SERVER['PHP_SELF'].'?id='.$Temp['id'].'">'.$Temp['isim'].'</a> - <img src="'.$_SERVER['PHP_SELF'].'?id='.$Temp['id'].'" height="16" width="16" /></li>
-
'."\n";
-
}
-
-
echo '</ul>
-
';
-
?>
Kategori: Kodlar | 17 Temmuz 2007
