array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'features.file-upload.multiple.php', 1 => 'Çoklu dosya yükleme', ), 'up' => array ( 0 => 'features.file-upload.php', 1 => 'Karşıya dosya yükleme', ), 'prev' => array ( 0 => 'features.file-upload.common-pitfalls.php', 1 => 'Bilinen zorluklar', ), 'next' => array ( 0 => 'features.file-upload.put-method.php', 1 => 'PUT yöntemi desteği', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'features/file-upload.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
input
lar için farklı name
değerleri
kullanarak çoklu dosya gönderilebilir.
Ayrıca bilgilerin otomatik olarak dizilerde düzenlendiği bir eşzamanlı dosya gönderimi de mümkündür. Bunun için, HTML formunda birden fazla input için aynı dizi söz dizimini kullanmalısınız:
Örnek 1 - Çoklu dosya yükleme
<form action="dosya-yukle.php" method="post" enctype="multipart/form-data"> Bu dosyaları gönder:<br /> <input name="kullanici_dosyasi[]" type="file" /><br /> <input name="kullanici_dosyasi[]" type="file" /><br /> <input type="submit" value="Dosyaları gönder" /> </form>
Yukarıdaki form gönderildiğinde, $_FILES['kullanici_dosyasi'], $_FILES['kullanici_dosyasi']['name'] ve $_FILES['kullanici_dosyasi']['size'] dizileri ilklendirilir.
Örneğin, gönderilen dosya isimleri /home/test/review.html ve /home/test/xwp.out olsun. Bu durumda, $_FILES['kullanici_dosyasi']['name'][0] review.html değerini içerir ve $_FILES['kullanici_dosyasi']['name'][1] xwp.out değerini içerir. Benzer şekilde, $_FILES['kullanici_dosyasi']['size'][0] review.html'in dosya boyutunu içerir ve böyle devam eder.
$_FILES['kullanici_dosyasi']['name'][0], $_FILES['kullanici_dosyasi']['tmp_name'][0], $_FILES['kullanici_dosyasi']['size'][0] ve $_FILES['kullanici_dosyasi']['type'][0]'a da ayrıca değerleri atanır.
max_file_uploads yapılandırma seçeneği bir istekte yüklenebilecek azami dosya sayısını belirtmek için kullanılabilmektedir. Formunuzun bir istekte bu sayıdan fazla dosya yüklemeye çalışmamasını sağlamalısınız.
Örnek 2 - Dizinin tamamen karşıya yüklenmesi
HTML dosya karşıya yükleme alanlarında,
webkitdirectory
özniteliği ile bir dizinin tamamı
karşıya yüklenebilir. Bu özellik günümüz tarayıcılarının çoğu
tarafından desteklenmektedir.
full_path
bilgisi ile göreli dosya yolunu
saklamak ve sunucuda aynı dizini oluşturmak mümkündür.
<form action="file-upload.php" method="post" enctype="multipart/form-data"> Bu dizini gönder:<br /> <input name="userfile[]" type="file" webkitdirectory multiple /> <input type="submit" value="Dosyaları gönder" /> </form>
webkitdirectory
özniteliği standart değildir ve
standartlaşma sürecinde değildir. İnternete açık üretim sitelerinde
kullanılmamalıdır: her kullanıcı için çalışmayacaktır. Ayrıca
uygulamalar arasında büyük uyumsuzluklar olabilir ve davranış gelecekte
değişebilir.
PHP sadece tarayıcının gönderdiği göreli dizin yapısını çözümler ve bu
bilgiyi $_FILES dizisinde aktarır.
full_path
dizisindeki değerlerin gerçek dizin
yapısını içermesinin bir garantisi yoktur ve PHP uygulamalarında bu
bilgiye güvenilmemelidir.