PHP 8 Php 8 File Upload 2026 Güncel

Php 8 Dosya Yükleme

4 dk okuma süresi 643 görüntülenme 2024-09-19 4.9 (14 değerlendirme)

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:

  1. $_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ü.
  2. 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.

  3. move_uploaded_file() : Dosyayı geçici dizinden, belirtilen hedef dizine taşır.

  4. 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ındaki upload_max_filesize direktifini aştı.
  • UPLOAD_ERR_FORM_SIZE (2): HTML formunda belirtilen MAX_FILE_SIZE direktifini 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 Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

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.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!