$_FILES süper globali
$_FILES ile çok parçalı form verisinden dosya bilgisini almayı öğrenirsin.
$_FILES süper globali
Dosya yükleyen bir HTML formu, veriyi çok parçalı (multipart) biçiminde gönderir. PHP bu veriyi $_FILES süper globaliyle yakalar. Tıpkı $_POST gibi her kapsamdan doğrudan erişilebilir; ama içinde metin değil, dosya üst verisi (metadata) tutar.
Formun enctype özniteliği multipart/form-data olmalıdır. type="file" alanı yüklenen dosyayı temsil eder. PHP dosyayı geçici bir konuma kaydeder ve bilgilerini $_FILES['avatar'] altında toplar; avatar alanın name değeridir.
$_FILES dizisinin yapısı
$_FILES['avatar'] beş anahtar içeren bir dizidir. Her biri yüklemeyle ilgili farklı bir bilgiyi tutar:
name: kullanıcının gönderdiği orijinal dosya adıtype: tarayıcının bildirdiği MIME türü (örneğinimage/png)tmp_name: dosyanın sunucudaki geçici yoluerror: hata kodu (0 başarı anlamına gelir)size: bayt cinsinden dosya boyutu
Bu alanlara $file['name'] biçiminde erişirsin. tmp_name geçici olduğu için betik bitince silinir; kalıcı olması için taşıman gerekir.
Uygulama Dosya üst verisini yazdır
Bir $_FILES['avatar'] için test verisi tanımla: name 'profil.jpg', tmp_name '/tmp/phpAbCd.tmp', error 0, size 2048. Sonra $file = $_FILES['avatar'] ile al ve üç satır yazdır: Ad: + name, Yol: + tmp_name, Boyut: + size + ' bayt'. Her satırın sonuna "\n" ekle.
Örnek çözümü göster
Önce $_FILES['avatar'] dizisini tanımla, sonra $file değişkenine ata ve echo ile üç alanı yazdır.
Örnek çözüm:
<?php
// $_FILES tanımla
$_FILES['avatar'] = [
'name' => 'profil.jpg',
'tmp_name' => '/tmp/phpAbCd.tmp',
'error' => 0,
'size' => 2048
];
$file = $_FILES['avatar'];
echo "Ad: " . $file['name'] . "\n";
echo "Yol: " . $file['tmp_name'] . "\n";
echo "Boyut: " . $file['size'] . " bayt\n";
Kendini test et
-
Geçici yol hangi anahtarda tutulur?
- name
- tmp_name
- size
- error
Cevabı göster
tmp_name — Doğru. tmp_name dosyanın geçici yolunu tutar.
-
Orijinal adı oku
$original = $_FILES['avatar']['____'];Cevabı göster
$original = $_FILES['avatar']['name']; -
$_FILES alanlarını eşleştir
- name
- Orijinal dosya adı
- type
- MIME türü
- tmp_name
- Geçici yol
- size
- Bayt cinsinden boyut
- error
- Hata kodu