- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,439
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 6 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,092
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
$_FILES, PHP'deki 'süper küresel' veya otomatik küresel değişkenlerden biridir. Bir betik boyunca tüm kapsamlarda kullanılabilir. $_FILES değişkeni, HTTP POST yöntemi aracılığıyla yüklenen öğeleri içeren bir ilişkisel dizidir.
Bir HTML formu, dosya türüne sahip bir giriş öğesi içerdiğinde, enctype niteliği multipart/form-data olarak ayarlandığında ve method niteliği HTTP POST yöntemi olarak ayarlandığında bir dosya yüklenir.
$HTTP_POST_FILES da aynı bilgiyi içerir, ancak süper küresel değildir ve artık kullanım dışı bırakılmıştır.
Aşağıdaki HTML betiği, dosya türünde giriş öğesi içeren bir form içerir.
Bu "giriş türü", dosya olarak başlıklandırılmış bir düğme oluşturur. Tıklandığında, bir dosya iletişim kutusu açılır. Yüklenecek bir dosya seçebilirsiniz.
Sunucudaki PHP betiği $_FILES değişkenindeki dosya verilerine erişebilir.
$_FILES dizisi aşağıdaki özellikleri içerir:
Yukarıdaki HTML, tarayıcı penceresinde "Dosya Seç" adlı bir düğme oluşturur. Bir dosya iletişim kutusunu açmak için "Dosya Seç" düğmesine tıklayın. Seçilen dosyanın adı göründüğünde, gönder düğmesine tıklayın.
Aşağıdaki çıktıyı üretecektir:
Şimdi PHP betiğini ( hello.php ) şu şekilde değiştirin:
Tarayıcı birden fazla "Dosya Seç" düğmesi gösterecektir. "Gönder" düğmesine tıklayarak seçili dosyaları yükledikten sonra, tarayıcı aşağıda gösterildiği gibi
Bir HTML formu, dosya türüne sahip bir giriş öğesi içerdiğinde, enctype niteliği multipart/form-data olarak ayarlandığında ve method niteliği HTTP POST yöntemi olarak ayarlandığında bir dosya yüklenir.
$HTTP_POST_FILES da aynı bilgiyi içerir, ancak süper küresel değildir ve artık kullanım dışı bırakılmıştır.
Aşağıdaki HTML betiği, dosya türünde giriş öğesi içeren bir form içerir.
<input type="file" name="file">
Bu "giriş türü", dosya olarak başlıklandırılmış bir düğme oluşturur. Tıklandığında, bir dosya iletişim kutusu açılır. Yüklenecek bir dosya seçebilirsiniz.
Sunucudaki PHP betiği $_FILES değişkenindeki dosya verilerine erişebilir.
$_FILES dizisi aşağıdaki özellikleri içerir:
- $_FILES['file']['name'] − Kullanıcının yüklenmesini seçtiği dosyanın orijinal adı.
- $_FILES['file']['type'] − Dosyanın mime türü. Bir örnek "image/gif" olabilir. Ancak bu mime türü PHP tarafında kontrol edilmez.
- $_FILES['file']['size'] − Yüklenen dosyanın bayt cinsinden boyutu.
- $_FILES['file']['tmp_name'] − Yüklenen dosyanın sunucuda saklandığı dosyanın geçici dosya adı.
- $_FILES['file']['full_path'] − Tarayıcı tarafından gönderilen tam yol. PHP 8.1.0'dan itibaren kullanılabilir.
- $_FILES['file']['error'] − Bu dosya yüklemesiyle ilişkili hata kodu.
| Hata Kodları | Tanım |
|---|---|
| UPLOAD_ERR_OK (Değer=0) | Herhangi bir hata yok, dosya başarıyla yüklendi. |
| UPLOAD_ERR_INI_SIZE (Değer=1) | Yüklenen dosya php.ini dosyasındaki upload_max_filesize yönergesini aşıyor. |
| UPLOAD_ERR_FORM_SIZE (Değer=2) | Yüklenen dosya MAX_FILE_SIZE boyutunu aşıyor. |
| UPLOAD_ERR_PARTIAL (Değer=3) | Yüklenen dosyanın sadece bir kısmı yüklendi. |
| UPLOAD_ERR_NO_FILE (Değer=4) | Hiçbir dosya yüklenmedi. |
| UPLOAD_ERR_NO_TMP_DIR (Değer=6) | Geçici klasör eksik. |
| UPLOAD_ERR_CANT_WRITE (Değer=7) | Dosya diske yazılamadı. |
| UPLOAD_ERR_UZANTISI (Değer=8) | Bir PHP eklentisi dosya yüklemesini durdurdu. |
Örnek
Aşağıdaki "test.html", enctype'ı multiform/form-data olarak ayarlanmış bir HTML formu içerir. Ayrıca, kullanıcının yüklenecek dosyayı seçmesi için formda bir düğme sunan bir giriş dosyası öğesine de sahiptir. Bu dosyayı Apache sunucunuzun belge kök klasörüne kaydedin.
PHP:
<html>
<body>
<form action="hello.php" method="POST" enctype="multipart/form-data">
<p><input type="file" name="file"></p>
<p><input type ="submit" value="submit"></p>
</form>
</body>
</html>
Yukarıdaki HTML, tarayıcı penceresinde "Dosya Seç" adlı bir düğme oluşturur. Bir dosya iletişim kutusunu açmak için "Dosya Seç" düğmesine tıklayın. Seçilen dosyanın adı göründüğünde, gönder düğmesine tıklayın.
Örnek
Belge kök klasöründeki sunucu tarafı PHP betiği ( upload.php ) $_FILES değişken dizisini aşağıdaki gibi okur:
PHP:
<?php
echo "Filename: " . $_FILES['file']['name']."<br>";
echo "Type : " . $_FILES['file']['type'] ."<br>";
echo "Size : " . $_FILES['file']['size'] ."<br>";
echo "Temp name: " . $_FILES['file']['tmp_name'] ."<br>";
echo "Error : " . $_FILES['file']['error'] . "<br>";
?>
Aşağıdaki çıktıyı üretecektir:
Filename: abc.txt
Type : text/plain
Size : 556762
Temp name: C:\xampp\tmp\phpD833.tmp
Error : 0
Örnek
PHP'de HTML dizisi özelliğini kullanarak birden fazla dosya yükleyebilirsiniz.
PHP:
<html>
<body>
<form action="hello.php" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]"/>
<input type="file" name="files[]"/>
<input type ="submit" value="submit"/>
</form>
</body>
</html>
Şimdi PHP betiğini ( hello.php ) şu şekilde değiştirin:
PHP:
<?php
foreach ($_FILES["files"]["name"] as $key => $val) {
echo "File uploaded: $val <br>";
}
?>
Tarayıcı birden fazla "Dosya Seç" düğmesi gösterecektir. "Gönder" düğmesine tıklayarak seçili dosyaları yükledikten sonra, tarayıcı aşağıda gösterildiği gibi
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
URL'sine yanıt olarak dosya adlarını gösterecektir.

