Múltiplos arquivos podem ser carregados usando-se diferentes name para input.
Também é possível carregar vários arquivos simultaneamente e ter a informação organizada automaticamente para você em arrays. Para fazer assim, você precisa usar a mesma sintaxe no formulário HTML que você usa para múltiplos selects e checkboxes:
Nota:
O Suporte para carregar múltiplos arquivos foi adicionado na versão PHP 3.0.10.
Exemplo #1 Carregando múltiplos arquivos
<form action="file-upload.php" method="POST" enctype="multipart/form-data"> Send these files:<br /> <input name="userfile[]" type="file" /><br /> <input name="userfile[]" type="file" /><br /> <input type="submit" value="Send files" /> </form>
Quando o formulário acima é submetido, as matrizes $_FILES['userfile'], $_FILES['userfile']['name'], e $_FILES['userfile']['size'] serão inicializadas (assim como $HTTP_POST_FILES para versões do PHP anterior a 4.1.0). Quando register_globals esta em on, globals para os arquivos carregados também são inicializadas. Cada um destes será uma array indexada numericamente dos valores apropriados para os arquivos submetidos.
Por exemplo, assuma que os nomes de arquivos tenham sido submetidos /home/test/review.html e /home/test/xwp.out. Neste caso, $_FILES['userfile']['name'][0] deve conter o valor review.html, e $_FILES['userfile']['name'][1] deve conter o valor xwp.out. Similarmente, $_FILES['userfile']['size'][0] deve conter o tamanho de review.html, e assim por diante.
$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0], e $_FILES['userfile']['type'][0] também são definidas.