Fala pessoal, hoje irei ensinar a fazer upload de vários arquivos de uma vez, ou seja, ao invés de criar apenas um campo para o usuário selecionar o arquivo, vamos criar múltiplos campos e fazer o upload de cada arquivo para o servidor através do PHP.

Clique aqui para fazer download do código

1. Formulário

Vamos criar nosso formulário, vou utilizar aqui como exemplo cinco campos para upload:

Criamos um formulário e na action definimos que os dados serão enviados para o próprio arquivo, através do $_SERVER[‘PHP_SELF’]. Cada campo de upload receberá o mesmo nome, ou seja, arquivo, porém iremos colocar [] (colchetes) para que assim o php interprete como um array, onde cada arquivo receberá um índice e assim nós poderemos manipular esses arquivos.

* Lembrando que quando se trata de upload devemos definir a propriedade enctype=”multipart/form-data”;

2. Upload com PHP

Já que os dados serão enviados ao mesmo arquivo, vamos colocar nosso código PHP nesse mesmo arquivo, vou optar por colocá-lo entre o header 1 (h1) e o ínicio do formulário:

Bom, apesar do código estar comentado, vou tentar detalhar o máximo possível:

Linha 4: Definimos o número de campos para enviar arquivo, no nosso caso, 5;
Linha 6: Definimos o tamanho máximo de cada arquivo, em bytes, no caso é equivalente a aproximadamente 1MB;
Linha 8: Definimos todas as extensões válidas e colocamos em um array;
Linha 10: Definimos a pasta onde os arquivos serão gravados (não esqueça de colocar uma / – barra – depois do nome da pasta);
Linha 12: Definimos se deve ser ou não substituido um arquivo já existente, quando false, o arquivo não será substituido, quando true, o arquivo será substituido;

Linha 14: Fazemos um loop para recuperar os dados, fazer a verificação e upload de cada campo de upload, o loop só irá terminar quando nosso contador ($i) for igual ao número de campos;
Linhas 17, 18, 19: Recuperamos as informações do arquivo do campo;

Linhas 27, 28, 29: Se o tamanho do arquivo for maior que o definido, será gerado um erro;
Linhas 31, 32, 33: Pegamos a extensão do arquivo através da função strrchr() e verificamos se ela está contida no array das extensões válidas, se não estiver, será gerado um erro;
Linhas 35, 36, 37: Verificamos se o arquivo já existe e se deve ser substituido ou não;

Linhas 40 a 45: Se não houver nenhum erro, movemos o arquivo que foi enviado para o caminho definido e exibimos a mensagem de sucesso, caso contrário um erro será exibido.

Bom, espero que vocês tenham entendido. Qualquer dúvida entre em contato, ok? Espero que esse artigo tenha sido útil a vocês, abraços.