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.