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