Php Dosya Yükleme Fonksiyonu

Php ile gerek blog projelerinizde gerek kurumsal projelerde , panellerde resim yüklemek gerekebiliyor. Kendi adıma söyleyecek olursam bu fonksiyonu oturup tek başıma yazmam. Bunun için hazır fonksiyonlar mevcut ve bizde bunu kullanarak gerek kullanıcıya gerek kendimize formdan submit ettirerek sadece kodu copy paste edere dosya yükleyebileceğiz. Burada resmi yüklemek için en temel şartlardan bir tanesi enctype=”multipart/form-data” özelliğidir. Bu özelliği formumuza eklemezsek bir dosya akışı söz konusu olamaz. Aşağıda kendi projelerimde kullandığım bir resim yükleme fonksiyonu var.

<?php
if($_POST){//Form gönderildi mi?
	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"];
			//Dosyaya yeni bir isim oluşturuluyor
			$uret=array("as","rt","ty","yu","fg");
			$uzanti=substr($dosya_adi,-4,4);
			$sayi_tut=rand(1,10000);
			$yeni_ad="dosyalar/".$uret[rand(0,4)].$sayi_tut.$uzanti;
			//Dosya yeni adıyla dosyalar klasörüne kaydedilecek
			if (move_uploaded_file($_FILES["resim"]["tmp_name"],$yeni_ad)){
				echo 'Dosya başarıyla yüklendi.';
				//Bilgiler veri tabanına kaydedilsin
				$sorgu=mysql_query("insert into resimler (resim,aciklama) values ('$yeni_ad','$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!';
	}
}
?>
<form action="" 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>

Ek olarak şunları söylemek istiyorum ki bu fonksiyon çok da güvenli değil. Yani biz bunu eğer bir kullanıcı etkileşimli sayfada kullanıcıya resim seçtirmek için kullanırsak sitemize kahkaha atarak girerler. Gerekli dosya uzantı kontrollerinin yapıldığından emin olmalıyız. Bu fonksiyon ile bir makale eklemek isterseniz şayet , makale yalnızca resimli halinin çıktısını verir , diğer türlü resim yüklenemedi hatası verir ve içeriği eklemez. Bunun için lastinsertid() fonksiyonu ile yukarıda bir mantık yürüteceksiniz ve eğer resim yüklenmememiş ise normal bir insert metodu , yüklenmiş ise ayrı bir update metodu yazacaksınız.Böylece ister resimli ister sade içerikler üretebilirsiniz.

LastInsertId() Fonksiyonu Ne İşe Yarar

Bu fonksiyon sayesinde veritabanına eklenen son kayıt id’sini tutabiliriz. Yani son kayıt id’di 55 ise id değerini alırız ve güncellemeyi ona gör yaparız. Bu örnekle böyle bir kullanım var ama daha farklı yerlerde de kullanımı mevcut.

$sonid = LastInsertId();

Şeklinde tanımlama yapılabilir.

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir