Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Resimleri Kopyalarken Yeniden Adlandırma

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
http://www.su-med.com/resim/
sitede resimleri yüklüyorum ama aynı isimli resimler yüklendiğinde eskisinin üstüne atıyor. Yani eski resim kayboluyor. Kayıt ederken resimismi-otonumara.resiminuzantısı şeklinde veri tabanına kayıt girerek bu resimleri yüklerken isimlerini nasıl değiştirebilirim kullandığım kod aşağıda eğer hataları varsa söylerseniz sevinirim.

Kod:
<?
$dosya_dizin = "C:\AppServ\www/resim/resim";
$dosya_url = "http://localhost/resim/resim";
if ( isset ( $dosya_gonder )) {
	if ( $dosya_gonder_type == "image/gif" or $dosya_gonder_type == "image/pjpeg" or $dosya_gonder_type == "image/jpeg" or $dosya_gonder_type == "image/jpg" or $dosya_gonder_type == "image/png"  ) {
    copy ( $dosya_gonder, "$dosya_dizin/$dosya_gonder_name" )or die ("Dosya kopyalanamıyor!"); 
	       $resim="$dosya_gonder_name";
		   }
	 else 
	{ print ("<span class=style1>Lütfen Resim Dosyasi Gönderiniz.</span>");}
      if ( $dosya_gonder_type == "image/gif" or $dosya_gonder_type == "image/pjpeg" or $dosya_gonder_type == "image/jpeg" or $dosya_gonder_type == "image/jpg" or $dosya_gonder_type == "image/png" ) {
      print ("<span class=style1>Resim Basari Ile Yüklendi Yönetici Tarafindan En Kisa Sürede Onaylanip Sitemizde Yayinlanacaktir.</span><br><br>\n\n");
      }
}
$kategori = $_POST['kategori'] ;
$aciklama = $_POST['aciklama'] ;
mysql_query("INSERT INTO `resim` ( `id` , `kategori` , `resim` , `onay`,aciklama ) VALUES ( lisanssız , '$kategori', '$dosya_gonder_name', 'h','$aciklama' )");
?>
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
yanıt yokmu iyinet?
 

Grafix

0
Onaylı Üye
Üye
Katılım
16 Aralık 2006
Mesajlar
1,153
Açılan Konu
81
Tepki puanı
0
Konum
Bursa
PHP:
$rastgele 	 = substr(uniqid(md5(rand())),0,10);
$uzanti      	 = substr($resimadi, -4); 
$yeniad      	 = $rastgele.$uzanti;

gibi bir işlemle yeni resim isimleri oluşturabilirsin.
 

ADrK

0
Onaylı Üye
Üye
Katılım
17 Şubat 2008
Mesajlar
68
Açılan Konu
9
Tepki puanı
0
Konum
Kartal
PHP:
$dosya = $_FILES['field']['name'];

$ftpadi = "su-med_".rand(0,15000).substr($dosya,-4);
Böylede alabilirsiniz dostum..
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
copy ( $dosya_gonder, "$dosya_dizin/$dosya_gonder_name" )or die ("Dosya kopyalanamıyor!");
$resim="$dosya_gonder_name";
}

bu koda nasıl ekliyebilirim onu soruyorum. Dosyanın ismini bende değiştiriyorum ama değiştirince Dosya kopyalanamıyor diyor. ondan sonra yaparsamda veri tabanına saçma sapan bir şey kayıt ediyor değişen dosya ismi ile hiç alakası olmayan bir şey.
 

ADrK

0
Onaylı Üye
Üye
Katılım
17 Şubat 2008
Mesajlar
68
Açılan Konu
9
Tepki puanı
0
Konum
Kartal
copy ( $dosya_gonder, "$dosya_dizin/$dosya_gonder_name" )or die ("Dosya kopyalanamıyor!");
$resim="$dosya_gonder_name";
}

bu koda nasıl ekliyebilirim onu soruyorum. Dosyanın ismini bende değiştiriyorum ama değiştirince Dosya kopyalanamıyor diyor. ondan sonra yaparsamda veri tabanına saçma sapan bir şey kayıt ediyor değişen dosya ismi ile hiç alakası olmayan bir şey.

PHP:
<?php

$dosya = $_FILES['dosya']['tmp_name'];
$ftpadi = "su-med_".rand(0,15000).substr($dosya,-4); 
$yukle = move_uploaded_file($dosya, "resim/".$ftpadi);
if($yukle) {
echo "Resim Yüklendi <br> :";
echo "<input type=\"text\" value=\"http://".$_SERVER['HTTP_HOST']."/$ftpadi\">";
} else {
echo "Resim Yüklenemiyor...";
}

?>

Birde bu sekilde denermisin ?
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
Kod:
    $dosya_gonder = $_FILES['field']['name'];
    $ftpadi = "su-med_".rand(0,15000).substr($dosya,-4); 
     copy ( $dosya_gonder, "$dosya_gonder" )or die ("Dosya kopyalanamıyor!"); 
	       $resim="$dosya_gonder";
		   }

Kod:
 copy ( $dosya_gonder, "$dosya_dizin/$dosya_gonder_name" )or die ("Dosya kopyalanamıyor!"); 
	       $resim="$dosya_gonder_name";
		   }
Kod:
    copy ( $dosya_gonder, "isim.jpg" )or die ("Dosya kopyalanamıyor!");

Kod:
$resim="$dosya_gonder_name";
$rastgele      = substr(uniqid(md5(rand())),0,10);
$uzanti           = substr($resim, -4); 
$yeniad           = $rastgele.$uzanti;  
copy ( $dosya_gonder, "$yeniad " )or die ("Dosya kopyalanamıyor!"); 
	       
		   }

Kod:
$resim=$dosya_gonder_name;
$rastgele      = substr(uniqid(md5(rand())),0,10);
$uzanti           = substr($resim, -4); 
$yeniad           = $rastgele.$uzanti;  
copy ( $dosya_gonder, "$yeniad " )or die ("Dosya kopyalanamıyor!"); 
	       
		   }
Kod:
$resim=$dosya_gonder_name;
$rastgele      = substr(uniqid(md5(rand())),0,10);
$uzanti           = substr($resim, -4); 
$yeniad           = $rastgele.$uzanti;  
copy ($dosya_gonder,$yeniad)or die ("Dosya kopyalanamıyor!"); 
	       
		   }

Bunların hiç biri çalışmıyor resmin ismi hep aynı.
 

ADrK

0
Onaylı Üye
Üye
Katılım
17 Şubat 2008
Mesajlar
68
Açılan Konu
9
Tepki puanı
0
Konum
Kartal
dostum move_uploaded_file() fonksiyonunu kullanabilirsin, yukarıda örneğini verdim..
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
Kod:
$dosya = $dosya_gonder_name;
$ftpadi = "su-med_".rand(0,15000).substr($dosya,-4); 
$yukle = move_uploaded_file($dosya, "resim/".$ftpadi);
if($yukle) {
echo "Resim Yüklendi <br> :";
} else {
echo "Resim Yüklenemiyor...";
}
Kod:
$dosya = $dosya_gonder_name;
$ftpadi = "su-med_".rand(0,15000).substr($dosya,-4); 
$yukle = move_uploaded_file($dosya_gonder, "resim/".$ftpadi);
if($yukle) {
echo "Resim Yüklendi <br> :";
} else {
echo "Resim Yüklenemiyor...";
}
Kod:
$ftpadi = "su-med_".rand(0,15000).substr($dosya_gonder_name,-4); 
$yukle = move_uploaded_file($dosya_gonder_name, "resim/".$ftpadi);
if($yukle) {
echo "Resim Yüklendi <br> :";
} else {
echo "Resim Yüklenemiyor...";
}
bularda aynı işi yaptı acaba ben formu başka sayfadan alıyorum ondanmı oluyor.

Kod:
<FORM  ENCTYPE="multipart/form-data" ACTION="eklendi.php" METHOD="POST">

  <p>
  <?
echo '<select name="kategori">';
$kategoriler = mysql_query("select * from kategori order by kategori asc") or die(mysql_error());
while($katego = mysql_fetch_array($kategoriler))
{
echo('<option value="'.$katego[id].'">'.$katego[kategori].'</option>');
}
echo '</select>';
echo  '<INPUT TYPE="hidden" NAME="resim" VALUE="'.$resim.'">';
?>
</p>
  <p>
    <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="2900000">
    <INPUT TYPE="file" NAME="dosya_gonder">
    <BR>
    <INPUT TYPE="SUBMIT" VALUE="Resim Yükle!">

bu şekilde
 

ADrK

0
Onaylı Üye
Üye
Katılım
17 Şubat 2008
Mesajlar
68
Açılan Konu
9
Tepki puanı
0
Konum
Kartal
Kod:
$dosya_gonder=$_FILES['resim']['tmp_name'];

$dosya_gonder'e bu degeri atarmisin ? bakalim düzelecekmi
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
Kod:
$dosya_gonder=$_FILES['resim']['tmp_name'];

$dosya_gonder'e bu degeri atarmisin ? bakalim düzelecekmi

Yok hep aynı resmi ilk adı ile yüklüyor. Zaten adını hiç değiştiremedim :D.
 

ADrK

0
Onaylı Üye
Üye
Katılım
17 Şubat 2008
Mesajlar
68
Açılan Konu
9
Tepki puanı
0
Konum
Kartal
Dostum Bunu Kullanarak Veritabaninada ismi basabilirsiniz.. Komple bu sistemi kullanmalisin ama.. Eğer buda olmazsa, ne yapmak istedigini söyle Seni kafaya taktim sorununu halledicem :))

PHP:
<?php 

$dosya = $_FILES['dosya']['tmp_name']; 
$ftpadi = "su-med_".rand(0,15000).substr($dosya,-4);  
$yukle = move_uploaded_file($dosya, "resim/".$ftpadi); 
if($yukle) { 
echo "Resim Yüklendi <br> :"; 
echo "<input type=\"text\" value=\"http://".$_SERVER['HTTP_HOST']."/$ftpadi\">"; 
$yukle = mysql_query("insert into table (resim,deger2,deger3,deger4) values ('$ftpadi','$deger2','$deger3','$deger4')");
} else { 
echo "Resim Yüklenemiyor..."; 
} 

?>
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
şimdi masa üstünde bir resim var diyelim bunun adı c.jpg. birisi bunu siteye yüklediği zaman c1.jpg yapıcak ismini ve veri tabanına c1.jpg diye kayıt edicek resmi b.jpg diye yüklendimi b2.jpg olcak sonra c.jpg diye başka biri daha resim yüklediğinde c3.jpg olcak.
Yani
resimismi+artannumara.resimuzantısı
ben artan numarayı halledebilirim ama resmi upload ederken ismini değiştiremiyorum bütün sorun burda yani resim c.jpg yükle dediğinde bunu c1.jpg olarak servera gönderen kodu arıyorum.
 

eRLySL

0
Onaylı Üye
Üye
Katılım
25 Mart 2008
Mesajlar
424
Açılan Konu
12
Tepki puanı
1
PHP:
<?php 

// Ayar
mysql_connect("localhost","root","");
mysql_select_db("resim");


if($_GET[sys]=="") { 
echo "<form name=\"uploadsistemi\" enctype=\"multipart/form-data\" method=\"post\" action=\"?sys=yukle\"><input type=\"file\" name=\"dosya\">
<input type=\"submit\" value=\"yukle bakim!\"></form>"; 
} 

if($_GET[sys]=="yukle") { 

$dizin=$_FILES['dosya']['tmp_name']; 
$dosya=$_FILES['dosya']['name']; 
$error=$_FILES['dosya']['error']; 
$ftp="su-med_".rand(0,9000).date("d_y_m").substr($dosya,-4); 
$yeni	=	stripslashes($ftp);
if($dosya=="" || $error>0) { 
echo "Dosya Yüklenirken Bir hata oluştu. <br> Lütfen <a href=javascript:history.back(1)>geri </a>dönerek tekrar deneyiniz."; 
}else { 
$db	=	mysql_query("insert into resim (resim) values ('$yeni')");
if(!$db) {
echo "<li>Veritabanina Yazilamiyor</li>";
}
$yuklebakim = move_uploaded_file($dizin, "resim/".$ftp); 
if($yuklebakim) { 
echo "Resim Başarı ile Yüklendi <br><b>İşte Linki : </b> <input type=\"text\" value=\"".$_SERVER['HTTP_HOST']."/resim/$ftp\">"; 
} else { 
echo "Resimi Yükleyemiyorum, Nedenini Bende Bilmiyorum :)"; 
} 
} 
} 

?>

Bide bunu denermisin dostum ? Ben denedim çalışıyor.
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
PHP:
<?php 

// Ayar
mysql_connect("localhost","root","");
mysql_select_db("resim");


if($_GET[sys]=="") { 
echo "<form name=\"uploadsistemi\" enctype=\"multipart/form-data\" method=\"post\" action=\"?sys=yukle\"><input type=\"file\" name=\"dosya\">
<input type=\"submit\" value=\"yukle bakim!\"></form>"; 
} 

if($_GET[sys]=="yukle") { 

$dizin=$_FILES['dosya']['tmp_name']; 
$dosya=$_FILES['dosya']['name']; 
$error=$_FILES['dosya']['error']; 
$ftp="su-med_".rand(0,9000).date("d_y_m").substr($dosya,-4); 
$yeni	=	stripslashes($ftp);
if($dosya=="" || $error>0) { 
echo "Dosya Yüklenirken Bir hata oluştu. <br> Lütfen <a href=javascript:history.back(1)>geri </a>dönerek tekrar deneyiniz."; 
}else { 
$db	=	mysql_query("insert into resim (resim) values ('$yeni')");
if(!$db) {
echo "<li>Veritabanina Yazilamiyor</li>";
}
$yuklebakim = move_uploaded_file($dizin, "resim/".$ftp); 
if($yuklebakim) { 
echo "Resim Başarı ile Yüklendi <br><b>İşte Linki : </b> <input type=\"text\" value=\"".$_SERVER['HTTP_HOST']."/resim/$ftp\">"; 
} else { 
echo "Resimi Yükleyemiyorum, Nedenini Bende Bilmiyorum :)"; 
} 
} 
} 

?>

Bide bunu denermisin dostum ? Ben denedim çalışıyor.
Çok sağol hocam teşekkür ederim :D . En sonunda oldu allah razı olsun.
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
Hocam

Kod:
$dizin=$_FILES['dosya']['tmp_name']; 
$dosya=$_FILES['dosya']['name'];

Burda alt klasörü nasıl belirtebilirim.

Ben resimleri
localhost/site/admin/resim
Klasöründe ekliyorum. Ama resimlerin
localhost/site/resim klasörüne kopyalanmasını istiyorum. Bu kod ile c:\wwwroot\site filan belirtmem gerekmediği için acaba nasıl bir değişiklik yapabilirim.
 

eRLySL

0
Onaylı Üye
Üye
Katılım
25 Mart 2008
Mesajlar
424
Açılan Konu
12
Tepki puanı
1
bir üst dizini dosya adinin onune "../" şeklinde belirtebilirsiniz..
 

Ozcan

0
Onaylı Üye
Üye
Katılım
12 Mayıs 2007
Mesajlar
3,749
Açılan Konu
428
Tepki puanı
61
Konum
Antalya
:D yukardaki kodda
$dizin=$_FILES['dosya']['tmp_name'];
$dosya=$_FILES['dosya']['name'];
kendi buluyor ya öbürtürlü elle yazmak lazım. Acaba bir alt dizini buldurmak için bir kod varmıdır.
 
Üst