
PHP Dosya Yükleme Sistemi (Upload) Ücretsiz 2026
Son düzenlenme tarihi:
PHP dosya yükleme, birçok web uygulamasında oldukça ihtiyaç duyulan bir işlemdir. Bu makalede, PHP kullanarak güvenli bir şekilde dosya yüklemenin nasıl yapıldığını ve nelere dikkat etmeniz gerektiğini öğreneceksiniz.
İçindekiler
PHP Dosya Yükleme İşlemine Giriş
Bir web sitesine dosya yükleme işlemi, form aracılığıyla yapılır. Kullanıcılar, bir dosyayı seçer ve sunucuya gönderir. PHP, dosya yükleme işlemini $_FILES süper global dizisi ile yönetir. Şimdi, PHP ile güvenli dosya yüklemenin detaylarına bakalım.
Adım Adım PHP Dosya Yükleme İşlemi
Dosya yükleme için ilk adım, bir HTML formu hazırlamaktır. Formun enctype özelliği multipart/form-data olarak ayarlanmalıdır:
<form action="dosya_yukle.php" method="post" enctype="multipart/form-data">
<br>
<label for="file">Dosya Seçin:</label>
<br>
<input type="file" name="file" id="file">
<br>
<button type="submit">Yükle</button>
<br>
</form>Bu form, kullanıcıdan bir dosya seçmesini sağlar ve dosyayı dosya_yukle.php dosyasına gönderir.
PHP Dosya Alma ve Kontrolleri Yapma
Dosyanın sunucuya yüklendiği bu adımda, $_FILES süper global dizisi kullanılarak dosya bilgileri alınır. Aşağıda, yükleme işlemi ve kontrollerin nasıl yapıldığını göreceksiniz
dosya_yukle.php içeriği:
<?php
if (isset($_FILES['file']) && $_FILES['file']['error'] !== UPLOAD_ERR_NO_FILE) {
$file = $_FILES['file'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
// Geçerli dosya uzantıları
$allowed = ['jpg', 'jpeg', 'png', 'pdf'];
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
// Dosya türü, hata ve boyut kontrolü
if (in_array($fileExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize <= 2 * 1024 * 1024) { // 2MB
// uploads klasörü yoksa oluştur
$uploadDir = __DIR__ . '/uploads/';
if (!file_exists($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
// Benzersiz dosya adı oluştur
$fileNameNew = uniqid('file_', true) . "." . $fileExt;
$fileDestination = $uploadDir . $fileNameNew;
if (move_uploaded_file($fileTmpName, $fileDestination)) {
echo "✅ Dosya başarıyla yüklendi: <strong>$fileNameNew</strong>";
} else {
echo "❌ Dosya taşınırken hata oluştu!";
}
} else {
echo "❌ Dosya boyutu 2MB'den büyük!";
}
} else {
echo "❌ Dosya yüklenirken bir hata oluştu! (Hata kodu: $fileError)";
}
} else {
echo "❌ Sadece JPG, JPEG, PNG ve PDF dosyalarına izin verilir!";
}
} else {
echo "⚠️ Herhangi bir dosya seçilmedi!";
}Dosya Boyutu ve Türü Kontrolü Yapma
Dosyanın boyutu fileSize ve türü fileType ile kontrol edilmelidir. Ayrıca, uzantı kontrolü in_array kullanılarak yapılır. Bu güvenlik önlemi, sadece izin verilen dosya türlerinin yüklenmesini sağlar.
Dosya Yükleme Güvenliği İçin Dikkat Edilmesi Gerekenler
Yükleme işlemi sırasında güvenlik büyük önem taşır. Dosya yüklerken kullanıcıdan gelen verileri her zaman doğrulamak ve gerekli kontrolleri yapmak önemlidir. İşte bazı güvenlik önlemleri:
- Dosya Adını Güvenli Hale Getirme: uniqid gibi benzersiz bir kimlik oluşturmak, aynı isimdeki dosyaların üzerine yazılmasını engeller.
- Yalnızca Belirli Uzantılara İzin Verin: Dosya türünü in_array ile kontrol etmek, kötü niyetli dosyaların sunucuya yüklenmesini engeller.
- Maksimum Dosya Boyutu Belirleyin: fileSize değeri ile büyük dosyaların yüklenmesini kısıtlayarak, sunucu performansını koruyabilirsiniz.






Yorumlar (0)