balıkesirPHP
19.11.2007, 12:16
arkadaşlar bazı arkadaşlarımız bu database ye resim yükleme işinin nasıl yapıldığını sık sık forumlarda soruyorlar
bende onlara yardımcı olabilmesi için database ye resim yukletip resmi ekranda gösterme konusunda kendimce bir şeyler
anlatmaya çalışmak istiyorum.
yapacağımız işlemleri şöyle sıralamak gerekirse;
1.) veritabanı oluşturmak
2.)tablo oluşturmak
3.)bir form yapıp,yüklenen resmi sunucuda ki bir klasore (ben photo klasoru açtım sizde değişik klasor acabilirsiniz)
taşımak.
4.)yüklenen resmin url sini databaseye taşımak.
5.) databaseye yüklenen resmi ekranda göstermek
şimdi işlemlerimize geçebiliriz.birinci işlemimiz bir veritabani oluşturmak.
photo adinda bir veritabanı oluşturalım.
-----------------------------------------------------------------------------------------------------------
<?php
// burdaki mysql ayarları benim ayarlarım,siz kendinize gore duzenliyeceksiniz
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
if(mysql_create_db("photo") ) {
echo "vt olusturuldu";
}
else {
echo "bir hata oldu";
}
?>
--------------------------------------------------------------------------------------------------------
veritabanımızı oluşturduk dolayısıyla 1.ci işlemimiz bitti.şimdi bu veritabanımızın içinde
resim adında bir tablo oluşturalum ve sutun adlarımız...dosyamızın url si, dosyamızın adı,dosyamızın boyutu gibi 3 alandan oluşsun.
siz de daha sonra bu tabloyu değiştirerek yeni alanlar ekliyebilirsiniz.
şimdilik mantıgını kavramak adına basit bir yukleme işlemi olsun.
............................................................................................................
<?php
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
$tablo="create table resim (
id mediumint(5) unsigned not null auto_increment,
dosya_url varchar(50) not null,
dosya_adi varchar(50) not null,
dosya_boyutu varchar(10) not null,
key no(id)
)";
$sorgu=mysql_query($tablo);
if(isset($sorgu) ) {
echo "tablo olusturuldu";
}
else {
echo "hata oldu".mysql_error($sorgu)."";
}
?>
......................................................................................................
tabi yine mysql ayarlarınızı değiştiriyorsunuz...tablomuzu oluşturduk..2.ci işlemimizde bitti.şimdi asıl can alıcı kısma geldik.
bir form alanı yapıp dosya yüklenmesi sonucu bu dosyayı sunucuda ki photo adında ki klasore tasımak ve mysql baglantısıyla
burada ki url yi databaseye taşımak...
..........................................................................................................
<?php
// her gonder boş degiskeni icin formun çalışmasını saglıyoruz
if(empty ($_POST['gonder']) ) {
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
resim sec:<input type="file" name="photo">
<input type="submit" name="gonder" value="gonder">
</form>
<?php
}else{
//dosyamızı ilk once geçici klasor olan tmp klasorune tasıyoruz.
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
// daha sonra dosyamızı photo klasorunun icine tasıyoruz
if(move_uploaded_file($_FILES['photo']['tmp_name'],"photo/".$_FILES['photo']['name']))
{
// yuklenen resmimizin url sini $url adında bir değişkene koyuyoruz
$url="photo/".$_FILES['photo']['name']."";
echo "secilen ".$url." adli resim
\n";
}
else
{
echo "hata oldu";
}
}
// mysql baglantısı yapıyoruz
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
//dosyamizin ismini belirliyoruz yani photo/resim.jpg url sini sadece resim.jpg olarak seçiyoruz
$name="$url";
$i=explode("/",$name);
//dosyamizin kb cinsinden boyutu icin yazacağımız fonksiyon
//normalde bu byte cinsinden alır
$file=filesize("/apache2triad/htdocs/$url");// resim yolunu giriyoruz bu benim resim yolum sizde kendi resim yolunuzu belirleyin
//kb ye ceviren fonksiyonumuz
$kb=1024;
$fkb=$file/$kb;
$n=explode(".",$fkb);
$s=strlen($n[1]);
$s1=substr($n[1],-$s,1);
// bundan sonra verilerimizi databaseye aktarabiliriz
// burada trim komutu değişkenin sagında ki ve solunda ki boslukları alır
// $url resmimizin url si,cunku veriyi url ile ekranda gosterebiliriz.
//$i[1] degiskeni yukarda bakarsanız $name kısmında, explode ile resmin sadece ismini aldık,ve / kısmınla ayırdık ve $i[1] ile 2.kısmı alıyoruz.
// $n[0].$s1 ise dosyamızın kb cinsinden verisini alır.
$veri[1]=trim($url);
$veri[2]=trim($i[1]);
$veri[3]=trim($n[0].$s1);
//verilerimizi tablolara koyuyoruz.
$veri_kaydi="insert into resim values ('','$veri[1]','$veri[2]','$veri[3]')";
// veri kaydina sorgu gonderiyoruz
$vsorgu=mysql_query($veri_kaydi);
//if ile databaseye tasınıp tasınmadıgını kontrol ediyoruz
if(isset($vsorgu) ) {
echo "databaseye tasindi";
}
else{
echo "hata oldu";
}
}
?>
..........................................................................................................
bu kadar arkadaşlar...şimdi resmimizi ekranda gorebiliriz.
komutumuz su sekilde
.........................................................................................................
<?php
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
// tablomuzun tumunu seciyoruz
$tablo="select * from resim";
$sorgu=mysql_query($tablo);
//while dongusuyle resmimizi gosterelim.ben burda sadece resmi gostericem.siz diger sutunlarıda cekebilirsiniz
while($oku=mysql_fetch_assoc($sorgu) ) {
$a="$oku[dosya_url]";
echo "<img src='$a' width='100' height='100'>";
}
?>
......................................................................................................
başarılar
bende onlara yardımcı olabilmesi için database ye resim yukletip resmi ekranda gösterme konusunda kendimce bir şeyler
anlatmaya çalışmak istiyorum.
yapacağımız işlemleri şöyle sıralamak gerekirse;
1.) veritabanı oluşturmak
2.)tablo oluşturmak
3.)bir form yapıp,yüklenen resmi sunucuda ki bir klasore (ben photo klasoru açtım sizde değişik klasor acabilirsiniz)
taşımak.
4.)yüklenen resmin url sini databaseye taşımak.
5.) databaseye yüklenen resmi ekranda göstermek
şimdi işlemlerimize geçebiliriz.birinci işlemimiz bir veritabani oluşturmak.
photo adinda bir veritabanı oluşturalım.
-----------------------------------------------------------------------------------------------------------
<?php
// burdaki mysql ayarları benim ayarlarım,siz kendinize gore duzenliyeceksiniz
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
if(mysql_create_db("photo") ) {
echo "vt olusturuldu";
}
else {
echo "bir hata oldu";
}
?>
--------------------------------------------------------------------------------------------------------
veritabanımızı oluşturduk dolayısıyla 1.ci işlemimiz bitti.şimdi bu veritabanımızın içinde
resim adında bir tablo oluşturalum ve sutun adlarımız...dosyamızın url si, dosyamızın adı,dosyamızın boyutu gibi 3 alandan oluşsun.
siz de daha sonra bu tabloyu değiştirerek yeni alanlar ekliyebilirsiniz.
şimdilik mantıgını kavramak adına basit bir yukleme işlemi olsun.
............................................................................................................
<?php
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
$tablo="create table resim (
id mediumint(5) unsigned not null auto_increment,
dosya_url varchar(50) not null,
dosya_adi varchar(50) not null,
dosya_boyutu varchar(10) not null,
key no(id)
)";
$sorgu=mysql_query($tablo);
if(isset($sorgu) ) {
echo "tablo olusturuldu";
}
else {
echo "hata oldu".mysql_error($sorgu)."";
}
?>
......................................................................................................
tabi yine mysql ayarlarınızı değiştiriyorsunuz...tablomuzu oluşturduk..2.ci işlemimizde bitti.şimdi asıl can alıcı kısma geldik.
bir form alanı yapıp dosya yüklenmesi sonucu bu dosyayı sunucuda ki photo adında ki klasore tasımak ve mysql baglantısıyla
burada ki url yi databaseye taşımak...
..........................................................................................................
<?php
// her gonder boş degiskeni icin formun çalışmasını saglıyoruz
if(empty ($_POST['gonder']) ) {
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
resim sec:<input type="file" name="photo">
<input type="submit" name="gonder" value="gonder">
</form>
<?php
}else{
//dosyamızı ilk once geçici klasor olan tmp klasorune tasıyoruz.
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
// daha sonra dosyamızı photo klasorunun icine tasıyoruz
if(move_uploaded_file($_FILES['photo']['tmp_name'],"photo/".$_FILES['photo']['name']))
{
// yuklenen resmimizin url sini $url adında bir değişkene koyuyoruz
$url="photo/".$_FILES['photo']['name']."";
echo "secilen ".$url." adli resim
\n";
}
else
{
echo "hata oldu";
}
}
// mysql baglantısı yapıyoruz
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
//dosyamizin ismini belirliyoruz yani photo/resim.jpg url sini sadece resim.jpg olarak seçiyoruz
$name="$url";
$i=explode("/",$name);
//dosyamizin kb cinsinden boyutu icin yazacağımız fonksiyon
//normalde bu byte cinsinden alır
$file=filesize("/apache2triad/htdocs/$url");// resim yolunu giriyoruz bu benim resim yolum sizde kendi resim yolunuzu belirleyin
//kb ye ceviren fonksiyonumuz
$kb=1024;
$fkb=$file/$kb;
$n=explode(".",$fkb);
$s=strlen($n[1]);
$s1=substr($n[1],-$s,1);
// bundan sonra verilerimizi databaseye aktarabiliriz
// burada trim komutu değişkenin sagında ki ve solunda ki boslukları alır
// $url resmimizin url si,cunku veriyi url ile ekranda gosterebiliriz.
//$i[1] degiskeni yukarda bakarsanız $name kısmında, explode ile resmin sadece ismini aldık,ve / kısmınla ayırdık ve $i[1] ile 2.kısmı alıyoruz.
// $n[0].$s1 ise dosyamızın kb cinsinden verisini alır.
$veri[1]=trim($url);
$veri[2]=trim($i[1]);
$veri[3]=trim($n[0].$s1);
//verilerimizi tablolara koyuyoruz.
$veri_kaydi="insert into resim values ('','$veri[1]','$veri[2]','$veri[3]')";
// veri kaydina sorgu gonderiyoruz
$vsorgu=mysql_query($veri_kaydi);
//if ile databaseye tasınıp tasınmadıgını kontrol ediyoruz
if(isset($vsorgu) ) {
echo "databaseye tasindi";
}
else{
echo "hata oldu";
}
}
?>
..........................................................................................................
bu kadar arkadaşlar...şimdi resmimizi ekranda gorebiliriz.
komutumuz su sekilde
.........................................................................................................
<?php
$db=mysql_connect ("localhost","root","483082483082");
if(!$db) {
echo "mysqle baglanamadım".mysql_error($db)."";
}
$ds=mysql_select_db("photo");
if(!$ds) { echo "vt seçilemedi".mysql_error($ds)."";}
// tablomuzun tumunu seciyoruz
$tablo="select * from resim";
$sorgu=mysql_query($tablo);
//while dongusuyle resmimizi gosterelim.ben burda sadece resmi gostericem.siz diger sutunlarıda cekebilirsiniz
while($oku=mysql_fetch_assoc($sorgu) ) {
$a="$oku[dosya_url]";
echo "<img src='$a' width='100' height='100'>";
}
?>
......................................................................................................
başarılar
19.11.2007, 12:17 tarihinde, balıkesirPHP tarafından düzenlendi.