Php 8 Dosya Yükleme
PHP 8'de dosya yükleme işlemi, kullanıcıların bir web formu aracılığıyla sunucuya dosya göndermelerini sağlar. PHP'de dosya yükleme işlemi için formda enctype="multipart/form-data" özelliği kullanılır ve dosya bilgileri $_FILES süper global dizisi ile alınır.
Aşağıda, adım adım PHP ile nasıl dosya yüklendiğini açıklayacağım.
1. HTML Formu Oluşturma
Kullanıcının dosya seçip yükleyeceği bir HTML formu oluşturalım.
<form action="upload.php" method="post" enctype="multipart/form-data"> <label for="file">Bir dosya seçin:</label> <input type="file" name="dosya" id="file"> <br> <br> <input type="submit" value="Dosyayı Yükle"> </form> Önemli Noktalar:
-
enctype="multipart/form-data": Bu, dosya yüklemeyi destekleyen bir form için gereklidir. -
input type="file": Dosya seçimi için kullanılan HTML elemanıdır.
2. PHP ile Dosya Yükleme İşlemi (upload.php)
Kullanıcı formu gönderdiğinde, dosyayı sunucuda belirli bir dizine yükleyecek olan PHP kodunu yazalım.
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Dosya bilgilerini al $dosya = $_FILES['dosya']; // Yüklenen dosyanın geçici yolu $gecici_dosya_yolu = $dosya['tmp_name']; // Yüklenen dosyanın adı $dosya_adi = basename($dosya['name']); // Dosyanın yükleneceği yer (hedef yol) $hedef_yol = 'uploads/' . $dosya_adi; // Dosyanın boyutu (byte cinsinden) $dosya_boyutu = $dosya['size']; // Desteklenen dosya türlerini belirleyelim $gecerli_dosya_turleri = ['image/jpeg', 'image/png', 'application/pdf']; // Dosyanın MIME türünü kontrol edelim $dosya_turu = mime_content_type($gecici_dosya_yolu); // Dosyanın boyut sınırını belirleyelim (örneğin 2MB) $max_boyut = 2 * 1024 * 1024; // Dosyanın boyutunu ve türünü kontrol et if (in_array($dosya_turu, $gecerli_dosya_turleri) && $dosya_boyutu <= $max_boyut) { // Dosyayı sunucuya taşı if (move_uploaded_file($gecici_dosya_yolu, $hedef_yol)) { echo "Dosya başarıyla yüklendi: " . $hedef_yol; } else { echo "Dosya yükleme sırasında hata oluştu."; } } else { echo "Geçersiz dosya türü veya boyut sınırı aşıldı."; } } else { echo "Dosya yüklenmedi."; } ?> Açıklama:
-
$_FILES['dosya']: Yüklenen dosyanın bilgilerini tutan bir dizi. Bu dizi aşağıdaki bilgilere sahiptir:
-
$_FILES['dosya']['name']: Dosyanın orijinal adı. -
$_FILES['dosya']['tmp_name']: Dosyanın geçici olarak kaydedildiği sunucudaki yol. -
$_FILES['dosya']['size']: Dosyanın boyutu. -
$_FILES['dosya']['error']: Dosya yükleme sırasında oluşan hata kodları. -
$_FILES['dosya']['type']: Dosyanın MIME türü.
-
-
basename(): Dosyanın orijinal adını almak için kullanılır. Güvenlik açısından kullanıcıların yüklediği dosya adını bu şekilde almak daha güvenli olabilir. -
move_uploaded_file(): Dosyayı geçici dizinden, belirtilen hedef dizine taşır. -
Dosya Türü ve Boyutu Kontrolü:
mime_content_type()ile dosyanın türü kontrol edilir ve belirlenen maksimum dosya boyutuna ($max_boyut) göre kısıtlama yapılır.
3. Hedef Dizin Oluşturma
PHP dosyayı sunucuya yükleyeceği bir dizine ihtiyaç duyar. Bu nedenle, uploads adında bir klasör oluşturup sunucunun bu klasöre yazma iznine sahip olduğundan emin olun.
Linux sunucularda, bu izni vermek için şu komutu kullanabilirsiniz:
chmod 777 uploads 4. Hata Kodları
hata kodları şu anlama gelir:
-
UPLOAD_ERR_OK(0): Hata yok, dosya başarıyla yüklendi. -
UPLOAD_ERR_INI_SIZE(1): PHP yapılandırma dosyasındakiupload_max_filesizedirektifini aştı. -
UPLOAD_ERR_FORM_SIZE(2): HTML formunda belirtilenMAX_FILE_SIZEdirektifini aştı. -
UPLOAD_ERR_PARTIAL(3): Dosya sadece kısmen yüklendi. -
UPLOAD_ERR_NO_FILE(4): Hiçbir dosya yüklenmedi.
Sonuç:
Bu örnek, PHP 8 ile temel bir dosya yükleme işlemini göstermektedir. Bu işlemi geliştirmek için ek doğrulamalar, güvenlik kontrolleri ve hata yönetimi ekleyebilirsiniz.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Php 8 Dosya Yükleme dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!