2
I know you already have some posts on this subject, but as I would just like to add to the code and not redo. In the code below, I need to add a way that the upload supports several images and as I still don’t know much I even went to the php site but I couldn’t implement, I thank you from the start the help
NOTE: The implementation of a photo works perfectly
PHP
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
include "conexao.php";
// Se o usuário clicou no botão cadastrar efetua as ações
if ($_POST['cadastrar']) {
// Recupera os dados dos campos
$foto = $_FILES["foto"];
// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
// Largura máxima em pixels
$largura = 2000;
// Altura máxima em pixels
$altura = 1080;
// Tamanho máximo do arquivo em bytes
$tamanho = 1000;
// Verifica se o arquivo é uma imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
$error[1] = "Isso não é uma imagem.";
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($arquivo["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}
// Se não houver nenhum erro
if (count($error) == 0) {
// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde ficará a imagem
$caminho_imagem = "fotos/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
// Insere os dados no banco
$sql = mysql_query("INSERT INTO tb_projetos (foto) VALUES ('".$nome_imagem."')") or die(mysql_error());
// Se os dados forem inseridos com sucesso
if ($sql){
echo "Você foi cadastrado com sucesso.";
}
}
// Se houver mensagens de erro, exibe-as
if (count($error) != 0) {
foreach ($error as $erro) {
echo $erro . "<br />";
}
}
}
}
?>
HTML
<div id="admin">
<div class="container">
<? include "includes/menu.php"?>
<div class="lista-conteudo">
<h1>Novo Usuário</h1>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" name="cadastro" >
<p>
<label for="foto">Fotos</label>
<input type="file" name="foto" multiple="true" />
<label class="bt-file">INSERIR</label>
</p>
<input type="submit" name="cadastrar" value="Cadastrar" />
</form>
<h1>Usuários cadastrados</h1>
<?php
// Seleciona todos os usuários
$sql = mysql_query("SELECT * FROM tb_projetos") or die(mysql_error());
// Exibe as informações de cada usuário
while ($usuario = mysql_fetch_object($sql)) {
// Exibimos a foto
echo "<figure><img src='fotos/".$usuario->foto."' alt='Foto de exibição' /></figure>";
echo "<form action='deleta-fotos.php' method='post'>
<input type='hidden' name='id' value='". $usuario->id."'>
<input type='submit' name='deletar' value='deletar' />
</form>";
}
?>
</div>
</div>
</div>
I don’t understand, your problem is in html(input file) or php?
– rray
rray So I don’t know how to do in php the html I put just for illustration
– user4451
Hello, if the form is for a user’s registration, why allow multiple images ? Another thing is, where did the variable come from
$ext
, and also, to read the individual names you would need to read the value of that field as aarray
, not as a normal file.– Edilson