Como fazer upload múltiplo com PHP


Nesta vídeo aula será apresentado como fazer upload em PHP de várias fotos no mesmo campo do formulário.

Apresentado como escolher qual o diretório para salvar as imagens.

Ao termino do upload é apresentado um mensagem de sucesso.

 

 

 

 

Baixar o código fonte desenvolvido na aula: CLIQUE AQUI

 


Criar o formulário.

 

Primeiro será criado a página "index.php" na qual será implementado o formulário com o campo para a imagem.

O campo imagem possuirá o nome name="arquivo[]" sendo a mesma um array

Neste campo agora usando o [shift] ou o [ctrl] pode selecionar várias imagens.

Código da página index.php:

 

<form enctype="multipart/form-data" method="POST" action="upload.php">
    <input type="file" name="arquivo[]" multiple="multiple" /><br><br>
    <input name="enviar" type="submit" value="Enviar">
</form>

 

Processar o formulário.

 

A segunda etapa é implementar a regra para realizar o upload das imagens.

Necessário criar o arquivo "upload.php". O código já está comentado.

Código da página upload.php:

<?php
//diretório para salvar as imagens
$diretorio = "imagens/";
//Verificar a existência do diretório para salvar as imagens e informa se o caminho é um diretório
if(!is_dir($diretorio)){ 
    echo "Pasta $diretorio nao existe";
}else{    
    $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
    //loop para ler as imagens
    for ($controle = 0; $controle < count($arquivo['name']); $controle++){        
        $destino = $diretorio."/".$arquivo['name'][$controle];
        //realizar o upload da imagem em php
        //move_uploaded_file — Move um arquivo enviado para uma nova localização
        if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){
            echo "Upload realizado com sucesso<br>"; 
        }else{
            echo "Erro ao realizar upload";
        }        
    }
}
?>

Não esqueça de criar a pasta "imagens" para salvar os arquivos.

 

Compreendendo alguns elementos utilizado na página upload.php.

is_dir — Informa se o caminho é um diretório
isset — Informa se a variável foi iniciada
$_FILES['arquivo'] - Pegar o nome original do arquivo
for - Laço de repetição
$arquivo['tmp_name'] - O nome temporário com o qual o arquivo enviado foi armazenado no servidor.
move_uploaded_file — Mover o arquivo enviado para o diretório determinado

 

Baixar o código fonte desenvolvido na aula: CLIQUE AQUI