Boa tarde a todos,
Tenho um cadastro de clientes já algum tempo, e o código até já tinha pego na internet algum tempo do upload de foto.
Acontece que agora fui ver que quando eu atualizo a foto de um cliente, ele não exclui a foto anterior da pasta, sendo assim a pasta ficando cheia de fotos antigas.
Outro ponto também é se nesse código alguém sabe como eu consegui redimensionar ela quando fizer o upload, para sempre deixar ela em um padrão de tamanho. 200 x 300 por exemplo.
Se alguém puder me ajudar em um ou outro ponto. Prefiro tentar ajustar esse, pois tenho outras categorias que uso, e outras soluções iriam me fazer ter uma trabalheira que não quero no momento. Segue o código.
<?php
// Conexão com o banco de dados
include "conexao.php";
if (isset($_SESSION['nome']) == "" || $_SESSION['login'] == "" ) {
header("Location:index.php");
}
// pegar a id do cliente na url (se existir)
$id_cliente = isset($_GET['id']) ? $_GET['id'] : null;
$fotoNova = null;
// se algo for postado, e existir a id do cliente
if (sizeof($_POST) && $id_cliente) {
$foto = $_FILES['foto'];
// Se a foto estiver sido selecionada
if (!empty($foto['name'])) {
// Largura máxima em pixels
$largura = 700;
// Altura máxima em pixels
$altura = 1000;
// Tamanho máximo do arquivo em bytes
$tamanho = 1000;
// Verifica se o arquivo é uma imagem
if (preg_match("/^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";
} {
// 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);
}
}
// atualiza os dados no banco
$sql = $sqli->query("update clientes set foto = '$nome_imagem' where id_cliente = $id_cliente");
// Se os dados forem inseridos com sucesso
if ($sqli->error) {
echo "<p>Erro ao atualizar.</p>" . $sqli->error;
} else {
// vai forçar o recarregamento da imagem nova
$fotoNova = '?' . microtime(true);
}
}
?>
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<title>CADASTRO DE CLIENTES</title>
<link href="css/estilo.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#E8E8E8">
<form id="atualizar" method="post" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;" >
<?php
// Seleciona apenas a foto do cliente id = $id_cliente
$result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente=$id_cliente");
if ($sqli->error) {
die($sqli->error);
} else {
// Exibe as informações de cada usuário
while ($nome = $result->fetch_assoc()) {
// Exibimos a foto
if (empty($nome['foto'])) {
echo "<img src='fotos/sem_foto.jpg' width='135' height='180'>";
} else {
echo "<img src='fotos/" . $nome['foto'] . "$fotoNova' alt='Foto de exibição' width='145' height='180'><br>";
}
// Exibimos o nome e email..continua o resto do codigo aqui
}
}
?>
<input type="file" name="foto" accept="image/*"><br><br>
<input type="hidden" name="enviar" value="1">
<input type="submit" name="atualizar" value="Enviar" />
</form>
</body>
</html>