Mam taki skrypt, że możemy wgrywać kilka plików naraz. Działa to na zasadzie, że w JS mam kod, gdzie po przyciśnięciu "dodaj kolejny plik" pojawia się nowy input taki jak ten:
<input type="file" name="plik[]" class="upload" />
a potem przesyłamy formularz. Problem pojawia się w kodzie PHP, widzi on tylko jeden plik, mimo że w tablicy powinno być np. 3 pliki - pętla wykonuje się tylko raz. Gdzie popełniam błąd?
Tutaj HTML:
<script type="text/javascript"> function dodaj_element(kontener){
var znacznik = document.createElement(\'input\');
znacznik.setAttribute(\'type\', \'file\');
znacznik.setAttribute(\'name\', \'plik[]\');
znacznik.className = \'upload\';
var kontener = document.getElementById(kontener);
kontener.appendChild(znacznik);
}
<form method="post" action="pliczek.php" enctype="multipart/form-data"> <input type="file" name="plik[]" class="upload" /> <input type="button" value="Załącz kolejny plik" onclick="dodaj_element('pliki');" /> <input type="submit" value="DODAJ" />
A tutaj PHP:
for ($i=0; $i<count($_FILES['plik']['size']); $i++)
{
if ($_FILES['plik']['size'][$i] > $max_size_file)
$error = 'Rozmiar przesyłanego załącznika został przekroczony. Maksymalny dopuszczalny rozmiar załącznika wynosi '.$max_size_file/(1024*1024).' MB';
elseif ($_FILES['plik']['type'][$i] == "text/plain")
$error = 'Niedopuszczalny format załącznika';
//TUTAJ JAKAS TAM CZESC KODU
}
}
}