PHP Dosya Yükleme Nasıl Yapılır?

  • Nisan 2, 2023
  • PHP
No Comments

PHP ile dosya yükleme işlemi oldukça yaygın bir iştir. Bu işlem, genellikle bir form aracılığıyla kullanıcının seçtiği bir dosyanın sunucuya yüklenmesini sağlar. Bu yazıda, PHP dosya yükleme işlemini nasıl yapabileceğinizi adım adım anlatacağız.

Adım 1: HTML Formu Oluşturma

Dosya yükleme işlemini gerçekleştirebilmek için bir HTML formu oluşturmanız gerekiyor. Bu formda “enctype” niteliğini “multipart/form-data” olarak ayarlamanız gerekiyor. Ayrıca, dosya yükleme işleminin gerçekleştirileceği dosya yolunu belirtmek için “action” niteliğini de belirlemeniz gerekiyor. Aşağıdaki kod, basit bir HTML formu örneğidir:

<!DOCTYPE html>
<html>
<head>
	<title>PHP Dosya Yükleme</title>
</head>
<body>
	<form action="upload.php" method="post" enctype="multipart/form-data">
		<label for="file">Dosya Seçin:</label>
		<input type="file" name="file" id="file">
		<input type="submit" name="submit" value="Yükle">
	</form>
</body>
</html>

Adım 2: PHP Kodu Yazma

Dosya yükleme işlemi gerçekleştirildiğinde, sunucu tarafında bir PHP kodu tarafından işlenmesi gerekir. Bu işlem için “move_uploaded_file” fonksiyonu kullanılır. Bu fonksiyon, sunucu tarafındaki geçici yüklenen dosyayı istenilen yere taşır. Aşağıdaki kod, dosya yükleme işlemini gerçekleştiren bir PHP kodu örneğidir:

<?php
if(isset($_POST['submit'])){
	$file = $_FILES['file'];
	
	//Dosya adı ve yolu
	$fileName = $file['name'];
	$fileTmpName = $file['tmp_name'];
	
	//Dosya uzantısı
	$fileExt = explode('.', $fileName);
	$fileActualExt = strtolower(end($fileExt));
	
	//İzin verilen dosya türleri
	$allowed = array('jpg', 'jpeg', 'png', 'pdf');
	
	if(in_array($fileActualExt, $allowed)){
		//Yeni dosya adı oluşturma
		$fileNewName = uniqid('', true).".".$fileActualExt;
		
		//Dosya yükleme
		$fileDestination = "uploads/".$fileNewName;
		move_uploaded_file($fileTmpName, $fileDestination);
		
		echo "Dosya başarıyla yüklendi.";
	}else{
		echo "Bu türdeki dosyalar yüklenemez.";
	}
}
?>

Bu kodda, öncelikle $_FILES dizisinden dosya adı, geçici dosya adı, dosya uzantısı gibi bilgileri alıyoruz. Daha sonra, dosya uzantısının izin verilen dosya türleri içinde olup olmadığını kontrol ediyor ve eğer izin verilen dosya türleri arasında ise, yeni bir dosya adı oluşturarak dosyanın yüklenmesi için gerekli olan dosya yolunu belirliyoruz. Son olarak, “move_uploaded_file” fonksiyonunu kullanarak, sunucu tarafındaki geçici dosyayı belirlenen yere taşıyoruz.

Adım 3: Dosya Yükleme Sınırlarını Ayarlama

Varsayılan olarak, PHP, sunucuya yüklenen dosya boyutunu sınırlandırır. Bu sınırlar, “upload_max_filesize” ve “post_max_size” değişkenleri ile ayarlanabilir. Bu değişkenlerin ayarlanması için php.ini dosyasına erişmeniz gerekiyor. Ancak, bu değişkenlerin değerleri değiştirilmeden önce, sunucunuzun yeterli kaynaklara sahip olduğundan emin olun.

Adım 4: Dosya Boyutu Kontrolü

Kullanıcılar, sunucuya yükleyebilecekleri dosya boyutu hakkında bir sınırlandırma bilgisi almalıdırlar. Bu bilgiyi, form sayfasında veya dosya yükleme işleminden önce bir JavaScript kodu kullanarak sağlayabilirsiniz. Ayrıca, sunucu tarafında da dosya boyutunun kontrol edilmesi gerekiyor. Aşağıdaki kod, sunucu tarafında dosya boyutunun kontrol edilmesini sağlar:

$maxFileSize = 5 * 1024 * 1024; //5 MB
if($_FILES['file']['size'] > $maxFileSize){
	echo "Dosya boyutu 5 MB'dan büyük olamaz.";
}

Bu kod, $_FILES dizisindeki dosya boyutunun 5 MB’dan büyük olup olmadığını kontrol eder.

Bu yazıda, PHP ile dosya yükleme işlemi nasıl yapılır sorusuna adım adım cevap verdik. Bu işlem, web uygulamalarının birçok yönünde kullanılabilecek önemli bir işlemdir. Ancak, dosya yükleme işlemi güvenlik sorunlarına neden olabilir. Bu nedenle, güvenlik önlemlerinin alınması önemlidir.

Kerem Özgüven, 2000 yılında php programlama geliştirmeye başladı. O günden bu yana bir çok yazılım projesine katkıda bulundu ve fullstack geliştirici olarak kariyerini sürdürüyor. Kullanıcı arayüzleri, web servislerinin tasarımı, veri yapıları, sunucu yönetimi ve web uygulamaları gibi birçok alanda uzmanlaşmıştır. Tasarladığı çözümler kullanıcı dostu tasarımlardan, güvenli ve kolay kullanılan arayüzlere kadar uzanmaktadır. Projelerde öncelikle en iyi sonuçların elde edilmesini kolaylaştıran modern yöntemler kullanmaktadır.Her zaman projelerinin başarısı için gerekli olan tüm araştırmaları yapmaya yönelik bir yaklaşım sergilemektedir.

Daha Fazla Makale

Hepsi

Leave a Comment