Como validar múltiplas imagens com PHP
Neste tutorial, será apresentado como validar múltiplas imagens com PHP.
Primeiramente, será mostrado como criar o formulário de upload múltiplo de arquivos.
Em seguida, será apresentado como receber múltiplos arquivos do formulário com PHP.
Por fim, será mostrado como validar a extensão e o tamanho do arquivo com PHP.
Download do código fonte desenvolvido na aula: Download
Curso de PHP Developer: Mais Detalhes do Curso
Playlist completa sobre upload de imagem com JavaScript: Acessar
Receber as aulas gratuitas do curso de PHP Developer: Acessar
Para começar, é criado o arquivo "index.php" com a estrutura básica do HTML.
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Celke</title>
</head>
<body>
// Conteúdo da página
</body>
</html>
Criado o formulário com o campo de upload múltiplo de arquivos, é importante utilizar o atributo enctype="multipart/form-data" na TAG form para que o formulário aceite arquivos.
<!-- Inicio do formulário -->
<form method="POST" action="upload.php" enctype="multipart/form-data">
<label>Selecione as Imagens: </label>
<!-- Campo para selecionar as imagens -->
<!--<input type="file" name="imagens[]" id="imagens" multiple accept="image/*"><br><br>-->
<input type="file" name="imagens[]" id="imagens" multiple><br><br>
<!-- Botão para enviar as imagens selecionadas -->
<input type="submit" value="Enviar Imagens"><br><br>
</form>
<!-- Fim do formulário -->
Criado o arquivo 'upload.php' para receber as imagens do formulário e validar a extensão e o tamanho do arquivo com PHP.
<?php
// Verifica se algum arquivo foi enviado
if (isset($_FILES['imagens']['name'][0]) and !empty($_FILES['imagens']['name'][0])) {
//var_dump($_FILES['imagens']);
// Array de extensões de arquivo permitidas
$extensaoValida = ['image/jpeg', 'image/jpg', 'image/png'];
// Tamanho máximo do arquivo permitido (5MB)
$tamanhoMaximoArquivo = 5 * 1024 * 1024;
// Percorrer a lista de arquivos
foreach ($_FILES['imagens']['tmp_name'] as $chave => $arquivo) {
//var_dump($_FILES['imagens']['name'][$chave]);
// Receber os valores da imagem
$nomeArquivo = $_FILES['imagens']['name'][$chave];
$tamanhoArquivo = $_FILES['imagens']['size'][$chave];
$tipoArquivo = $_FILES['imagens']['type'][$chave];
// Verifica a extensão do arquivo
if (!in_array($tipoArquivo, $extensaoValida)) {
echo "<p style='color: #f00;'>Erro: Extensão do arquivo " . $nomeArquivo . " não permitida.</p>";
// continue - interrompe a iteração atual do loop e passa para a próxima iteração
continue;
}
// Verifica o tamanho do arquivo
if($tamanhoArquivo > $tamanhoMaximoArquivo){
echo "<p style='color: #f00;'>Erro: Tamanho do arquivo " . $nomeArquivo . " excede o limite de 5MB.</p>";
// continue - interrompe a iteração atual do loop e passa para a próxima iteração
continue;
}
echo "<p style='color: #282;'>Erro: Extensão do arquivo " . $nomeArquivo . " permitida.</p>";
// Criar o upload do arquivo -->> Próxima aula
}
} else {
echo "<p style='color: #f00;'>Erro: Nenhuma imagem foi enviada ou tipo de arquivo enviado é inválido.</p>";
}
echo "<a href='index.php'>Voltar</a>";
Baixar o código-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido útil!