A muito tempo estava a procura de como fazer este sistema e agora que consegui compartilhos ele com vocês
Tabela : FOTOS
CREATE TABLE `fotos` (
`Id` varchar(15) NOT NULL,
`foto` varchar(50) NOT NULL,
UNIQUE KEY `Id` (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Este script serve para quem tem um sistema de login e quer colocar fotos para os usuarios
necessario:
servidor php
editor de html/php - bloco de notas - Dremweaver .....
conhecimento minimo de php requerido
sistema de login (de prefereça o gerado pelo Dreamweaver{por causa dos nomes das variaveis de sessão})
pasta (no exemplo = fotos) dentro do ditretorio onde salvara os proximos 2 arquivos
O arquivo SET.PHP é responsavel pelo upload da foto e inserçao do nome de usuario logado e o path da foto na tabela foto do MySQl,verificação do aquivo enviar
<?php require('Connections/teste.php'); ?>
<?php
if (!isset($_SESSION)) {
session_start();
}
?>
<?php
$colname_cfoto_rs = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_cfoto_rs = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($database_teste, $teste);
$query_cfoto_rs = sprintf("SELECT * FROM fotos WHERE Id = '%s'", $colname_cfoto_rs);
$cfoto_rs = mysql_query($query_cfoto_rs, $teste) or die(mysql_error());
$row_cfoto_rs = mysql_fetch_assoc($cfoto_rs);
$totalRows_cfoto_rs = mysql_num_rows($cfoto_rs);
?>
<?php // upload/validação da foto e upload do path para a tabela
$erro = $config = array();
// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 100000000;
// Largura máxima (pixels)
$config["largura"] = 100000000;
// Altura máxima (pixels)
$config["altura"] = 10000000;
// Formulário postado... executa as ações
if($arquivo)
{
// Verifica se o mime-type do arquivo é de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"]))
{
$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo";
}
else
{
// Verifica tamanho do arquivo
if($arquivo["size"] > $config["tamanho"])
{
$erro[] = "Arquivo em tamanho muito grande!
A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.
Envie outro arquivo";
}
// Para verificar as dimensões da imagem
$tamanhos = getimagesize($arquivo["tmp_name"]);
// Verifica largura
if($tamanhos[0] > $config["largura"])
{
$erro[] = "Largura da imagem não deve
ultrapassar " . $config["largura"] . " pixels";
}
// Verifica altura
if($tamanhos[1] > $config["altura"])
{
$erro[] = "Altura da imagem não deve
ultrapassar " . $config["altura"] . " pixels";
}
}
// Imprime as mensagens de erro
if(sizeof($erro))
{
foreach($erro as $err)
{
echo " - " . $err . "<BR>";
}
}
// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
else
{
// Pega extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Gera um nome único para a imagem
$imagem_nome = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde a imagem ficará
$imagem_dir = "fotos/" . $imagem_nome;
//usuario a ser inserido no bd
$usuariologado = $_SESSION['MM_Username'];
// insere no banco de dados
$insertSQL = sprintf("INSERT INTO fotos(Id, foto) VALUES ('$usuariologado', '$imagem_nome')");
mysql_select_db($database_teste, $teste);
$Result1 = mysql_query($insertSQL, $teste) or die(mysql_error());
// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
echo "Sua foto foi enviada com sucesso!";
echo "<meta http-equiv='refresh' content='1' />";
}
}
// atualização/validação da foto e upload do path para a tabela
$erro = $config = array();
// Prepara a variável do arquivo
$arquivo = isset($_FILES["foto2"]) ? $_FILES["foto2"] : FALSE;
// Tamanho máximo do arquivo (em bytes)
$config["tamanho"] = 100000000;
// Largura máxima (pixels)
$config["largura"] = 100000000;
// Altura máxima (pixels)
$config["altura"] = 10000000;
// Formulário postado... executa as ações
if($arquivo)
{
// Verifica se o mime-type do arquivo é de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"]))
{
$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,
bmp, gif ou png. Envie outro arquivo";
}
else
{
// Verifica tamanho do arquivo
if($arquivo["size"] > $config["tamanho"])
{
$erro[] = "Arquivo em tamanho muito grande!
A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.
Envie outro arquivo";
}
// Para verificar as dimensões da imagem
$tamanhos = getimagesize($arquivo["tmp_name"]);
// Verifica largura
if($tamanhos[0] > $config["largura"])
{
$erro[] = "Largura da imagem não deve
ultrapassar " . $config["largura"] . " pixels";
}
// Verifica altura
if($tamanhos[1] > $config["altura"])
{
$erro[] = "Altura da imagem não deve
ultrapassar " . $config["altura"] . " pixels";
}
}
// Imprime as mensagens de erro
if(sizeof($erro))
{
foreach($erro as $err)
{
echo " - " . $err . "<br />";
}
}
// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
else
{
// Pega extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
// Gera um nome único para a imagem
$imagem_nome = $row_cfoto_rs['foto'];
// Caminho de onde a imagem ficará
$imagem_dir = "fotos/" . $imagem_nome;
// Faz o upload da imagem
move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
echo "Sua foto foi atualiza com sucesso!";
echo "<meta http-equiv='refresh' content='1' />";
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
#Layer1 {
position:absolute;
z-index:4;
left: 10px;
top: 49px;
background-color: #FF9900;
}
#Layer2 {
position:absolute;
width:386px;
height:300px;
z-index:2;
left: 351px;
top: 37px;
}
#Layer3 {
position:absolute;
width:324px;
height:188px;
z-index:3;
left: 10px;
top: 180px;
}
#Layer4 {
position:absolute;
width:237px;
height:67px;
z-index:1;
left: 10px;
top: 49px;
background-image:url(/eteca/fotos/fundo1.gif);
}
-->
</style>
</head>
<body>
<?php if ($totalRows_cfoto_rs == 0) { // Show if recordset empty ?>
<div id="Layer1">
<form method="post" enctype="multipart/form-data" name="uploadform">
<input type="file" name="foto"><br />
<input type="submit" value="Enviar Foto!">
</form>
</div>
<?php } // Show if recordset empty ?>
<div id="Layer2"></div>
<?php if ($totalRows_cfoto_rs > 0) { // Show if recordset not empty ?>
<div id="Layer3">
<p>Foto atual : <img src="fotos/<?php echo $row_cfoto_rs['foto']; ?>" /> </p>
<p>Atualizar foto :</p>
<form method="post" enctype="multipart/form-data" name="uploadform2">
<input type="file" name="foto2"><br />
<input type="submit" value="Enviar Foto!">
</form>
<p><a href="deletar.php?foto=<?php echo $row_cfoto_rs['foto']; ?>">Deletar foto </a></p>
<p> </p>
</div>
<?php } // Show if recordset not empty ?>
<div id="Layer4"></div>
</body>
</html>
<?php
mysql_free_result($cfoto_rs);
?>
O SET.PHP alem de fazer o upload serve tambem para atualizar a foto
e lincar para o arquivo que deleta a foto do bd e da pasta
ele verifica c a tabela foto contem um campo com Id= Nome de usuario do sistema de login = ao usuario logado o momento
c sim ele mostra a foto dese usuario um formulario para mudar a foto e um link para deletar a foto
cao o usuario logado não tenha nenhum dado na tabela foto ele mostra o formulario de upload que envia a foto pro servidor e insere no bd o nome de usuario e o path da foto
a foto vai para a pasta e para o bd com um nome uniko gerado pela função
md5(uniqid(time())) que gera um arquivo uniko em no minimo 10 milhões :blink:
o link deletar foto é um link para pagina deletar.php com a variavel foto= path da foto
já é possivel testar seu sistema de upload foto ira para pasta Fotos e tabela vai ter id = usuario logado e path do arquivo com a extensão
Esse arquivo esta configurado para só aceitar arquivos de img caso queira que o upload seja de videos ou outros arquivos :
Procure por
// Verifica se o mime-type do arquivo é de imagem
if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"]))
e
// Pega extensão do arquivo
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name], $ext);
mude o gif , png, jpeg, ....
para os arquivos desejados como
por exemplo:
paginas de web
html|php|htm|php3|asp|cfm|js|jsp|etc
videos
asf|wmv|vid|vob|rmvb|....
o arquivo DELETAR.php
Pergunta
Zero Cool
A muito tempo estava a procura de como fazer este sistema e agora que consegui compartilhos ele com vocês
Tabela : FOTOS
Este script serve para quem tem um sistema de login e quer colocar fotos para os usuarios necessario: servidor php editor de html/php - bloco de notas - Dremweaver ..... conhecimento minimo de php requerido sistema de login (de prefereça o gerado pelo Dreamweaver{por causa dos nomes das variaveis de sessão}) pasta (no exemplo = fotos) dentro do ditretorio onde salvara os proximos 2 arquivos O arquivo SET.PHP é responsavel pelo upload da foto e inserçao do nome de usuario logado e o path da foto na tabela foto do MySQl,verificação do aquivo enviar<?php require('Connections/teste.php'); ?> <?php if (!isset($_SESSION)) { session_start(); } ?> <?php $colname_cfoto_rs = "-1"; if (isset($_SESSION['MM_Username'])) { $colname_cfoto_rs = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']); } mysql_select_db($database_teste, $teste); $query_cfoto_rs = sprintf("SELECT * FROM fotos WHERE Id = '%s'", $colname_cfoto_rs); $cfoto_rs = mysql_query($query_cfoto_rs, $teste) or die(mysql_error()); $row_cfoto_rs = mysql_fetch_assoc($cfoto_rs); $totalRows_cfoto_rs = mysql_num_rows($cfoto_rs); ?> <?php // upload/validação da foto e upload do path para a tabela $erro = $config = array(); // Prepara a variável do arquivo $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; // Tamanho máximo do arquivo (em bytes) $config["tamanho"] = 100000000; // Largura máxima (pixels) $config["largura"] = 100000000; // Altura máxima (pixels) $config["altura"] = 10000000; // Formulário postado... executa as ações if($arquivo) { // Verifica se o mime-type do arquivo é de imagem if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if($arquivo["size"] > $config["tamanho"]) { $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo"; } // Para verificar as dimensões da imagem $tamanhos = getimagesize($arquivo["tmp_name"]); // Verifica largura if($tamanhos[0] > $config["largura"]) { $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels"; } // Verifica altura if($tamanhos[1] > $config["altura"]) { $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels"; } } // Imprime as mensagens de erro if(sizeof($erro)) { foreach($erro as $err) { echo " - " . $err . "<BR>"; } } // Verificação de dados OK, nenhum erro ocorrido, executa então o upload... else { // Pega extensão do arquivo preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); // Gera um nome único para a imagem $imagem_nome = md5(uniqid(time())) . "." . $ext[1]; // Caminho de onde a imagem ficará $imagem_dir = "fotos/" . $imagem_nome; //usuario a ser inserido no bd $usuariologado = $_SESSION['MM_Username']; // insere no banco de dados $insertSQL = sprintf("INSERT INTO fotos(Id, foto) VALUES ('$usuariologado', '$imagem_nome')"); mysql_select_db($database_teste, $teste); $Result1 = mysql_query($insertSQL, $teste) or die(mysql_error()); // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"], $imagem_dir); echo "Sua foto foi enviada com sucesso!"; echo "<meta http-equiv='refresh' content='1' />"; } } // atualização/validação da foto e upload do path para a tabela $erro = $config = array(); // Prepara a variável do arquivo $arquivo = isset($_FILES["foto2"]) ? $_FILES["foto2"] : FALSE; // Tamanho máximo do arquivo (em bytes) $config["tamanho"] = 100000000; // Largura máxima (pixels) $config["largura"] = 100000000; // Altura máxima (pixels) $config["altura"] = 10000000; // Formulário postado... executa as ações if($arquivo) { // Verifica se o mime-type do arquivo é de imagem if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg|png)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if($arquivo["size"] > $config["tamanho"]) { $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo"; } // Para verificar as dimensões da imagem $tamanhos = getimagesize($arquivo["tmp_name"]); // Verifica largura if($tamanhos[0] > $config["largura"]) { $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels"; } // Verifica altura if($tamanhos[1] > $config["altura"]) { $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels"; } } // Imprime as mensagens de erro if(sizeof($erro)) { foreach($erro as $err) { echo " - " . $err . "<br />"; } } // Verificação de dados OK, nenhum erro ocorrido, executa então o upload... else { // Pega extensão do arquivo preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); // Gera um nome único para a imagem $imagem_nome = $row_cfoto_rs['foto']; // Caminho de onde a imagem ficará $imagem_dir = "fotos/" . $imagem_nome; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"], $imagem_dir); echo "Sua foto foi atualiza com sucesso!"; echo "<meta http-equiv='refresh' content='1' />"; } } ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <style type="text/css"> <!-- #Layer1 { position:absolute; z-index:4; left: 10px; top: 49px; background-color: #FF9900; } #Layer2 { position:absolute; width:386px; height:300px; z-index:2; left: 351px; top: 37px; } #Layer3 { position:absolute; width:324px; height:188px; z-index:3; left: 10px; top: 180px; } #Layer4 { position:absolute; width:237px; height:67px; z-index:1; left: 10px; top: 49px; background-image:url(/eteca/fotos/fundo1.gif); } --> </style> </head> <body> <?php if ($totalRows_cfoto_rs == 0) { // Show if recordset empty ?> <div id="Layer1"> <form method="post" enctype="multipart/form-data" name="uploadform"> <input type="file" name="foto"><br /> <input type="submit" value="Enviar Foto!"> </form> </div> <?php } // Show if recordset empty ?> <div id="Layer2"></div> <?php if ($totalRows_cfoto_rs > 0) { // Show if recordset not empty ?> <div id="Layer3"> <p>Foto atual : <img src="fotos/<?php echo $row_cfoto_rs['foto']; ?>" /> </p> <p>Atualizar foto :</p> <form method="post" enctype="multipart/form-data" name="uploadform2"> <input type="file" name="foto2"><br /> <input type="submit" value="Enviar Foto!"> </form> <p><a href="deletar.php?foto=<?php echo $row_cfoto_rs['foto']; ?>">Deletar foto </a></p> <p> </p> </div> <?php } // Show if recordset not empty ?> <div id="Layer4"></div> </body> </html> <?php mysql_free_result($cfoto_rs); ?>O SET.PHP alem de fazer o upload serve tambem para atualizar a foto e lincar para o arquivo que deleta a foto do bd e da pasta ele verifica c a tabela foto contem um campo com Id= Nome de usuario do sistema de login = ao usuario logado o momento c sim ele mostra a foto dese usuario um formulario para mudar a foto e um link para deletar a foto cao o usuario logado não tenha nenhum dado na tabela foto ele mostra o formulario de upload que envia a foto pro servidor e insere no bd o nome de usuario e o path da foto a foto vai para a pasta e para o bd com um nome uniko gerado pela função md5(uniqid(time())) que gera um arquivo uniko em no minimo 10 milhões :blink: o link deletar foto é um link para pagina deletar.php com a variavel foto= path da foto já é possivel testar seu sistema de upload foto ira para pasta Fotos e tabela vai ter id = usuario logado e path do arquivo com a extensão Esse arquivo esta configurado para só aceitar arquivos de img caso queira que o upload seja de videos ou outros arquivos : Procure por e mude o gif , png, jpeg, .... para os arquivos desejados como por exemplo: paginas de web html|php|htm|php3|asp|cfm|js|jsp|etc videos asf|wmv|vid|vob|rmvb|.... o arquivo DELETAR.php<?php require('Connections/teste.php'); ?> <?php if (!isset($_SESSION)) { session_start(); } ?> <?php function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } if ((isset($_SESSION['MM_Username'])) && ($_SESSION['MM_Username'] != "")) { $deleteSQL = sprintf("DELETE FROM fotos WHERE Id=%s", GetSQLValueString($_SESSION['MM_Username'], "text")); mysql_select_db($database_teste, $teste); $Result1 = mysql_query($deleteSQL, $teste) or die(mysql_error()); $deleteGoTo = "set.php"; if (isset($_SERVER['QUERY_STRING'])) { $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?"; $deleteGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $deleteGoTo)); } ?> <?php $colname_cfoto_rs = "-1"; if (isset($_SESSION['MM_Username'])) { $colname_cfoto_rs = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username] : addslashes($_SESSION['MM_Username']); } mysql_select_db($database_teste, $teste); $query_cfoto_rs = sprintf("SELECT * FROM fotos WHERE Id = '%s'", $colname_cfoto_rs); $cfoto_rs = mysql_query($query_cfoto_rs, $teste) or die(mysql_error()); $row_cfoto_rs = mysql_fetch_assoc($cfoto_rs); $totalRows_cfoto_rs = mysql_num_rows($cfoto_rs); ?><?php $foto = $_GET['foto']; unlink("fotos/$foto"); ?> <?php mysql_free_result($cfoto_rs); ?>O arquivo deletar.php
deleta a foto utilizando a função do C
unlink("caminhodafoto/$foto");
a variavel $foto é a que é passada pelo link da pagina set.php lembram-se?
o deletar.php vai apagar a foto no diretorio fotos e deletar da tabela o Id e o path WHERE foto=caminho
fazendo com que dá proxima vez que o usuario entrar na pagina set.php ele veja a area de upload e não a de atualizar.
Editado por Zero CoolLink para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.