Merhabalar, çoğu geliştiricinin karşısına çıkan ve aranan bir konuda bir örnek göstermek istedim. Php ile ajax kullanmadan basit ve kullanışlı bir multiupload script yazacağız. İnternette bir çok multiupload scriptler mevcut bunların bir çoğunu test etme şansım oldu. Çoğu karmaşık ve oldukça yavaş çalışıyor. Aynı zamanda tarayıcı uyumsuzlukları da cabası. Belki işinizi görür diye basit ve geliştirilmeye açık bir multiupload yapayım dedim.

Form kısmını aşağıdaki gibi kaydedelim.








Formdaki enctype ile bir dosya yükleyeceğimizi belirtiyoruz. İnput içerisindeki mutliple özelliği tek pencereden birden fazla dosya seçmemize olanak sağlıyor.

İster aynı php dosyası içerisinde ister farklı bir dosya içerisine aşağıdaki php kodlarımızı kaydedelim. Unutmadan eğer farklı bir dosya içerisinde kullanıyorsak form action kısmını ilgili dosyaya göre düzenlemeliyiz.

$klasor="../uploads";
$dosya_sayi=count($_FILES['dosya']['name']);
for($i=0;$i<$dosya_sayi;$i++){
if(!empty($_FILES['dosya']['name'][$i])){
move_uploaded_file($_FILES['dosya']['tmp_name'][$i],$klasor."/".$_FILES['dosya']['name'][$i]);
$uploadimage = mysql_query(" BURAYA RESMİN KAYDEDİLECEĞİ SORGUYU YAZIN. ");
}
}


Yukarıdaki kod’u açıklamak gerekirse ilk olarak post ettiğimiz dosyaların sayısını count fonksiyonuyla elde ediyoruz. Bu sayı kadar dönecek bir for döngüsü oluşturup dosyalarımızın her birini move_uploaded_file fonksiyonu ile istediğiniz klasöre yazıyoruz. Yazma işleminden sonra dilerseniz bir Veritabanına bu resmin bilgilerini nerede tutulduğunu kaydedebilirsiniz.

Ayrıca resimle ilgili aşağıdaki bilgileri elde etmeniz mümkün.

$_FILES["file"]["name"] – Dosyanın adı.
$_FILES["file"]["type"] – Dosyanın türü
$_FILES["file"]["size"] – Dosyanın kb türünden boyutu
$_FILES["file"]["tmp_name"] – Dosyanın oluşturulan kopyasının ismi
$_FILES["file"]["error"] – Dosya yüklenirken oluşturulan hata kodu

Ve ayrıca aşağıdaki kaynaklar bu konuda işinize yarayabilir.

http://php.net/manual/en/reserved.variables.files.php

http://www.w3schools.com/php/php_file_upload.asp

http://techstream.org/Web-Development/PHP/Multiple-File-Upload-with-PHP-and-MySQL [Detaylı bir ingilizce anlatım yazıyı yazdıktan sonra rastladım. Çok güzel bir kaynak.]