PHP dosya yükleme işleme için önceki derslerde öğrendiğimiz html formunu kullanacağız. Başkalarının bilgisayarında olan dosyaları kendi sunucumuza göndereceğimiz bu çalışmada güvenlik için biraz dikkatli ve tedbirli olmamız gerekiyor.

Eğer hiç bir koşul uygulamadan saf bir upload uygulaması yapacak olursak, isteyen herkes sitemize istediği dosyayı ve yazılımı gönderebilir, kendi kodlarını atıp sitemizi ele geçirebilir.

Bunun için dosyaları enine boyuna kontrol edip onayladıktan sonra sitemize göndereceğiz. Öncelikle dosya uzantısına, dosya boyutuna ve dosyanın tipine bakacağız. Tipini ya da boyunu beğenmezsek almayacağız.

Upload Formunu Hazırlama

Bunun için başta da dediğim gibi önceden anlattığımız html formunu kullanacağız. Ve bu formda gönderilecek dosyayı seçmemizi sağlayacak olan file form elementini yerleştireceğiz. Bir de form etiketine enctype değerine dosya upload edeceğimiz için “multipart/form-data” parametresini ekleyeceğiz. Enctype kesinlikle koymayı unutmuyoruz aksi durumda yüklerken hata verebilir veya hiç bişi yapmaz.

	<form method="post" enctype="multipart/form-data">
		<input type="file" name="dosya">
		<input type="submit" value="Yükle">
	</form>

Bu formu tarayıcımızdan açtığımızda aşağıdaki gibi bir görüntü meydana gelmiş olacak. Ve yükle butonuna bastığımızda da dosyayı aynı sayfada gönderecek.

Gönderilen Dosyaları Kontrol Edip Yüklemek

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta charset="UTF-8">
	<title>PHP ile Dosya Upload</title>
</head>
<body>
	<!--  Yükleme Alanını Oluşturduk -->
	<form method="post" enctype="multipart/form-data">
		<input type="file" name="dosya">
		<input type="submit" value="Yükle">
	</form>
	<!--  Yükleme Alanını Bitti -->
</body>
<?php
	if(isset($_FILES['dosya']))//Dosya yüklendimi diye kontrol ediyoruz.
	{
		$hata = $_FILES['dosya']['error'];//Dosyada hata var ise hata değişkenine aktardık. Buradan 1 veya 0 sonucu çıkar.
		if($hata != 0)//hata 0 değilse hatayı göster dedik.
		{
			echo 'Yüklenirken bir hata gerçekleşmiş.';//Hatamızı ekrana yazdırdık.
		}
		else//Hata yoksa dedik
		{
			$boyut = $_FILES['dosya']['size'];//Dosya boyutumuzu alıp değişkene aktardık.
			if($boyut > (1024*1024*3))//Buarada dosyamız 3 mb büyükse girmesini söyledik
			{//İsteyen arkadaslar burayı istediği gibi değiştirebilir size kalmış bir şey
				echo 'Dosya 3MB den büyük olamaz.';// 3 mb büyükse ekrana yazdıracağımız alan
			}
			else
			{
				$tip = $_FILES['dosya']['type'];//Dosya tipimizi aldık
				$isim = $_FILES['dosya']['name'];// Dosya ismimizi aldık
				$uzanti = explode('.', $isim);//Burada . sonraki kısmı aldık yani resim.jpg dosyamız var . sonraki olan kısım .jpg alıcaktır.
				$uzanti = $uzanti[count($uzanti)-1];//Yukarıda .jpg kısmını almıştık burada . kısmını silmiş oluyoruz elimizdeki uzantı sadece olarak jpg veya png olmuş olacak
				if($uzanti == 'jpg' || $uzanti == 'png' || $uzanti == 'gif')
				{//Kontrolümüzü yapıyoruz sadece jpg veya png veya gif dosyalarını kabul edicez
					if(!file_exists('dosyalar'))//Buradaki şartımız dosyamızı dosyalar adında bir klasöre gönderiyoruz eğer klasör yoksa oluşturmasını istiyoruz burada
						mkdir('dosyalar');//dosyalar isimli klasörü oluştur dedik
					$dosya = $_FILES['dosya']['tmp_name'];//Dosyamızı gecici dizinden $dosya değişkenine aktardık.
					copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);// copy fonksiyonu ile dosyalar isimli klasörüne kaydettik.
					echo 'Dosyanız upload edildi!';//Başarılı olması durumunda ekranda gözükecek.
				}
				else
				{//Eğer Dosya uzantısını kabul etmediysek kullanıcıyı bilgilendiriyoruz.
					echo 'Yanlızca JPG,PNG dosyaları gönderebilirsiniz.';
				}
			}
		}
	}
 ?>
</html>

Resim yükleme sayfamızın tamamı bu şekildedir. Bunu parça parça da anlatabilirdik fakat hem uzun olur hemde kafanız karışabilirdi bu yüzden tam sayfa halinde gösterdik her satırın ne yaptığını yanına açıklanmış bir şekildedir. Anladığımız yer olursa yorum kısmından bize ulaşabilirsiniz.

Bir sonraki dersimizde Resim Yükleme konusundan devam edeceğiz.

Uygulamayı İndirmek İçin :

 

Yorumlar

Yorum Yapılmamış.

Yorum Yaz

Bilgini paylaşarak insanlara faydalı olmak istiyorsan bizimle iletişime geç.