upload-imagem.php
<?php // Conexão com o banco de dados $conn = @mysql_connect("localhost", "root", "p@ssw0rd") or die ("Problemas na conexão."); $db = @mysql_select_db("thiago_cardoso", $conn) or die ("Problemas na conexão"); // Se o usuário clicou no botão cadastrar efetua as ações if ($_POST['cadastrar']) { // Recupera os dados dos campos $nome = $_POST['nome']; $email = $_POST['email']; $foto = $_FILES["foto"]; // Se a foto estiver sido selecionada if (!empty($foto["name"])) { // Largura máxima em pixels $largura = 900; // Altura máxima em pixels $altura = 900; // 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 usuarios VALUES ('NULL', '".$nome."', '".$email."', '".$nome_imagem."')"); // 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 />"; } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Cadastro de usuário</title> <link href="as-cores.css" rel="stylesheet" type="text/css" /> </head> <body> <fieldset> <legend>Novo Usuário</legend> <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" name="cadastro" > Nome:<br /> <input type="text" name="nome" /><br /><br /> Email:<br /> <input type="text" name="email" /><br /><br /> Foto de exibição:<br /> <input type="file" name="foto" /><br /><br /> <input type="submit" name="cadastrar" value="Cadastrar" /> </form> </fieldset> <br><br><br> <fieldset> <legend> Usuários Cadastrados </legend> <?php // Seleciona todos os usuários $sql = mysql_query("SELECT * FROM usuarios ORDER BY nome"); // Exibe as informações de cada usuário while ($usuario = mysql_fetch_object($sql)) { // Exibimos a foto echo "<BR><BR>"; echo "<table border='2'>"; echo "<tr><td><img src='fotos/".$usuario->foto."' alt='Foto de exibição' height='300' wight='100'></td></tr></table>"; // Exibimos o nome e email echo "<table border='2'>"; echo "<tr><td><b>Nome:</b> </td><td>" . $usuario->nome . "</td>"; echo "<tr><td><b>Email:</b> </td><td>" . $usuario->email . "</td>"; echo "</tr></table>"; } ?> </fieldset> </body> </html>