FlavioSI 0 Denunciar post Postado Outubro 30, 2006 Primeiro eu gostaria de agradecer aos membros deste fórum que participam ativamente e que me ajudaram muito... Partindo de um script do Fábyo, http://forum.imasters.com.br/public/style_emoticons/default/joia.gif fiz uma adaptação aos meus propósitos, ainda falta muita coisa para realmente ficar bom, mas mas estou muito contente com o resultado... Este script redimenciona, cria os thumbs das fotos, salva os nomes no db e salva os comentários.... index.php <?require_once "class_upload.php";$upload = new Upload();$upload->Envia_Arquivo();?><html><head><title>Upload</title><script> function Contador(field,MaxLength) { obj = document.all(field); if (MaxLength !=0) { if (obj.value.length > MaxLength) { obj.value = obj.value.substring(0, MaxLength); } } document.form1.contador.value = obj.value.length + '/300'; }</script><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="index.php" method="post" enctype="multipart/form-data" name="form1"> <textarea name="mensagem" method = "post" cols="41" rows="7" class="frm_input" id="descricao" style="caixa" onKeyUp="return Contador('descricao',300);"></textarea><BR> <input name="contador" type="text" disabled="disabled" class="caixa2" id="contador" size="7" maxlength="7"> <input type="file" name="arquivo"> <input type="submit" name="Submit" value="Enviar"></form></body></html> funções.php <?php/*Fabyo Guimaraes de Oliveira */function reduz_imagem($img, $max_x, $max_y, $nome_foto) {//pega o tamanho da imagem ($original_x, $original_y)list($width, $height) = getimagesize($img);$original_x = $width;$original_y = $height;// se a largura for maior que alturaif($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; }else { $porcentagem = (100 * $max_y) / $original_y; }$tamanho_x = $original_x * ($porcentagem / 100);$tamanho_y = $original_y * ($porcentagem / 100);$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);$image = imagecreatefromjpeg($img);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);return imagejpeg($image_p, $nome_foto, 100);}?> class_upload.php <?set_time_limit(0);include "funcoes.php";class Upload{ var $arquivo = ""; var $erro = array ( "0" => "upload execultado com sucesso!", "1" => "O arquivo é maior que o permitido pelo Servidor", "2" => "O arquivo é maior que o permitido pelo formulario", "3" => "O upload do arquivo foi feito parcialmente", "4" => "Não foi feito o upload do arquivo" ); function Verifica_Upload() { $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; if(!is_uploaded_file($this->arquivo['tmp_name'])) { return false; } $get = getimagesize($this->arquivo['tmp_name']); if($get["mime"] != "image/jpeg") { echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>"; exit; } return true; } function Envia_Arquivo() { if($this->Verifica_Upload()) { $this->gera_fotos(); return true; } else { echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>"; } } function gera_fotos() { $diretorio = "fotos/"; if(!file_exists($diretorio)) { mkdir($diretorio); } $nome_foto = "imagem_".time().".jpg"; $nome_thumb = "thumb_".time().".jpg"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto); //passo o tamanho da thumbnail reduz_imagem($this->arquivo['tmp_name'], 100, 70, $diretorio.$nome_thumb); echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>"; // -Banco de Dados - // $conexao = mysql_connect("localhost","root",""); mysql_select_db("classificados"); $text = $_POST['mensagem']; $sql = "insert INTO thumbs Values ('','$nome_thumb','$nome_foto','$text')"; $query = mysql_query($sql); mysql_close($conexao); } }?> lista.php <?php$host = "localhost";$user = "root";$senha = "";$db= "nome_do_banco"; $tabela = "nome_da_tabela";$conn = mysql_connect($host,$user,$senha);$banco = mysql_select_db($db);$sql=mysql_query("select * from $tabela order by id_thumbs desc") or die(mysql_error()); echo "<table width=100 border=0>";$total = mysql_num_rows($sql);?><?php$colunas = "3";?><?phpif ($total>0) {for($i=0;$i<$total;$i++) {if (($i%$colunas)==0) {echo "<tr>";}?><?php$dados = mysql_fetch_array($sql);$thumbs = $dados["thumbs"];$imagem = $dados["imagem"];$text = $dados["mensagem"];print "<td><table width=\"140\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><a href=\"fotos/$imagem\" target='_blank'><img src=\"fotos/$thumbs\"></a><br>$text</td></tr></table></td>";}} else {echo "Nenhum registro encontrado";}?> Mantive os comentários do Fábyo, as alterações ficam por conta da inserção no db, listagem em colunas e os comentários....espero que ajude alguém, lembrando que sou iniciante, manerem nas críticas...hehehhehe Compartilhar este post Link para o post Compartilhar em outros sites
robson cavalcante 0 Denunciar post Postado Novembro 11, 2006 Olá, boa tarde.Ficou bem legal mais..... aonde estão as tabelas do banco?Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Alan M. Diniz 1 Denunciar post Postado Novembro 14, 2006 Bem organizado..muito bom Compartilhar este post Link para o post Compartilhar em outros sites
Geison GM 0 Denunciar post Postado Novembro 14, 2006 Oi FlavioSI! Muito bom o seu sistema, mas como o amigo aí de cima havia perguntado, também lhe pergunto. Você poderia nos disponibilizar as tabelas do banco? Valeu a força! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Fabricio 0 Denunciar post Postado Novembro 24, 2006 o nome do banco de dados que ele usa é classificados...mais é só mudar no class_upload.php linha 59.e o sql pra fazer a tabela pode ser:CREATE TABLE `thumbs` (`id_thumbs` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,`nome` VARCHAR(100) NOT NULL,`thumb` VARCHAR(100) NOT NULL,`foto` VARCHAR(100) NOT NULL);também tem configurações a serem feitas no arquivo lista.phplinhas 5 e 6, onde temos:$db= "nome_do_banco";$tabela = "nome_da_tabela";colocar os dados do db e da tabela acima criados.:D Compartilhar este post Link para o post Compartilhar em outros sites
Carlos Vital 0 Denunciar post Postado Novembro 24, 2006 só uma pergunta.em que parte desse script ,que faz o upload da imagem? Compartilhar este post Link para o post Compartilhar em outros sites
cristhianofonseca 0 Denunciar post Postado Dezembro 28, 2006 Caríssimo, tentando aqui deu este erro:Fatal error: Cannot instantiate non-existent class: upload in /home/restricted/home/abusiva/public_html/siga/cliente/index.php on line 6O que seria?Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
marcos... 0 Denunciar post Postado Janeiro 3, 2007 tem como eu colocar escrever um texto em cima da imagem?? estou tentando adaptar a função imagettftext mas não consigo =/ alguem pode dar uma luz hehehevalew Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Maio 7, 2007 Muito bom o tuto. Mas tenhos duvidas no seguinte: O que devo fazer para aceitar outros formatos como gif e png? Em que parte do codigo devo inserir o seguinte: [*]Verificar o mime-type do arquivo para ver se é de imagem. [*]Verficar o tamanho do arquivo e [*]verificar as dimensões da imagem Preciso muito dele, se puder ajudar fico grato. Compartilhar este post Link para o post Compartilhar em outros sites
Gutinho 0 Denunciar post Postado Setembro 15, 2007 Copie e colei aqui pra testar (e futuramente adaptar ao meu site), mas ele não mostra as imagens... Aparece um quadrado com contorno azul e um X no lugar da imagem/foto... Alguém sabe pq acontece isso? Compartilhar este post Link para o post Compartilhar em outros sites
rnmoge 0 Denunciar post Postado Setembro 24, 2007 O meu aconteceu a mesma coisa!!! Compartilhar este post Link para o post Compartilhar em outros sites
rnmoge 0 Denunciar post Postado Setembro 24, 2007 Copie e colei aqui pra testar (e futuramente adaptar ao meu site), mas ele não mostra as imagens... Aparece um quadrado com contorno azul e um X no lugar da imagem/foto... Alguém sabe pq acontece isso?Aconteceu a mesma coisa comigo...analise o codigo dai o nome que eu estava colocando no bd era diferente que esta no script por isso nao aparecia... Da uma olhada se naum eh a mesma coisa contigo! Compartilhar este post Link para o post Compartilhar em outros sites
Hospeda SUL 0 Denunciar post Postado Setembro 25, 2007 agora sim funfo... beleza :) Compartilhar este post Link para o post Compartilhar em outros sites
rafaelpampoch 0 Denunciar post Postado Outubro 6, 2007 olá para todos... estou usando este código como base pra desenvolver um outro q atenda as minhas necessidades... apesar de manjar bem pouco de php to conseguindo numa boa... adicionei alguns campos e ta tudo ok... a minha dúvida é a seguinte: se eu quiser fazer uma página para alterar estes dados que foram inseridos no db? para fazer o update dos outros campos está beleza, mas queria ter a opção de alterar a foto também... tentei alterar o arquivo class_upload.php, na parte que insere no banco, trocando o insert por update e pegando os outros dados por get, mas ele insere um novo registro ao invés de atualizar... alguém pode me ajudar a encontrar o erro? alterar_completo.php <?include "conexao.php";require_once "class_update.php";$upload = new Upload();$upload->Envia_Arquivo();$data_atual = date("d/m/Y");$id = $_GET["id"];$sql = "SELECT * FROM relatorio WHERE id_relatorio='$id'";$resultado = mysql_query($sql)or die (mysql_error());$dados = mysql_fetch_array($resultado);$data = $dados["data"];$cliente = $dados["cliente"];$text = $dados["foto"];?><html><head><title>Upload</title><script>function Contador(field,MaxLength) { obj = document.all(field); if (MaxLength !=0) { if (obj.value.length > MaxLength) { obj.value = obj.value.substring(0, MaxLength); } } document.form1.contador.value = obj.value.length + '/300'; }function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0;}</script><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><h3>ID: <? echo "$id"; ?></h3><form action="index.php" method="post" enctype="multipart/form-data" name="form1"> <input type="hidden" name="id" value="<? echo "$id"; ?>"> <label for="data">Data:</label> <input name="data" type="text" id="data" size="11" value="<? echo "$data"; ?>"> <br /> <label for="cliente">Cliente</label><br /> <input name="cliente" type="text" id="novo_cliente" size="30" value="<? echo "$cliente"; ?>"> <br /> <label for="mensagem">Relatório</label> <br /> <textarea name="mensagem" method = "post" cols="41" rows="7" class="frm_input" id="descricao" style="caixa" onKeyUp="return Contador('descricao',300);"><? echo "$text"; ?></textarea> <input name="contador" disabled type="text" class="caixa2" id="contador" size="7" maxlength="7"> <br /> <label for="arquivo">Imagem</label><br /> <input type="file" name="arquivo"> <br /> <input type="submit" name="Submit" value="Enviar"></form></body></html> class_update.php <?set_time_limit(0);include "funcoes.php";class Upload{ var $arquivo = ""; var $erro = array ( "0" => "upload execultado com sucesso!", "1" => "O arquivo é maior que o permitido pelo Servidor", "2" => "O arquivo é maior que o permitido pelo formulario", "3" => "O upload do arquivo foi feito parcialmente", "4" => "Não foi feito o upload do arquivo" ); function Verifica_Upload() { $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; if(!is_uploaded_file($this->arquivo['tmp_name'])) { return false; } $get = getimagesize($this->arquivo['tmp_name']); if($get["mime"] != "image/jpeg") { echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>"; exit; } return true; } function Envia_Arquivo() { if($this->Verifica_Upload()) { $this->gera_fotos(); return true; } else { echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>"; } } function gera_fotos() { $diretorio = "fotos/"; if(!file_exists($diretorio)) { mkdir($diretorio); } $nome_foto = "imagem_".time().".jpg"; $nome_thumb = "thumb_".time().".jpg"; //determino uma resolução maxima e se a imagem for maior ela sera reduzida reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto); //passo o tamanho da thumbnail reduz_imagem($this->arquivo['tmp_name'], 100, 70, $diretorio.$nome_thumb); echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>"; // -Banco de Dados - // $id_novo = $_POST['id']; $data = $_POST['data']; $cliente = $_POST['cliente']; $text = $_POST['mensagem']; $sql = "UPDATE relatorio SET data='$data',cliente='$cliente',nome_thumb='$$nome_thumb',nome_foto='$nome_foto',text='$text' WHERE id_relatorio=$id_novo ";// $sql = "insert INTO relatorio Values ('','$data','$cliente','$nome_thumb','$nome_foto','$text')"; $query = mysql_query($sql); mysql_close($conexao); } }?> Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
sasleal 0 Denunciar post Postado Outubro 22, 2007 Não estou conseguindo fazer o upload, esta dando o seguinte erro: Fatal error: Call to undefined function imagecreatetruecolor() in C:\Arquivos de programas\Apache Group\Apache\htdocs\upload\funcoes.php on line 22Agradeço pela ajudo e aguardo respostas. Compartilhar este post Link para o post Compartilhar em outros sites
sasleal 0 Denunciar post Postado Outubro 22, 2007 tinha esquecido de habilitar a biblioteca GD. valew Compartilhar este post Link para o post Compartilhar em outros sites
André Ricardo Theodoro 0 Denunciar post Postado Novembro 6, 2007 Oi Pessoal!! Dei uma olhada no código, pois precisava a parte de dimensionar a foto, mas não consigo fazr funcionar de jeito nenhum....... Será q alguém pode me ajudar!? O meu código é este: <?php require_once('conecta.php'); ?> <?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; } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } // Aqui, pegamos o nome e o nome temporário da imagem enviada. $foto = $_FILES["foto_foto"]["name"]; $fotoTmp = $_FILES["foto_foto"]["tmp_name"]; $fotoSize = $_FILES["foto_foto"]["size"]; $fotoTipo = $_FILES["foto_foto"]["type"]; if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { if($fotoSize >= "51200"){ $erro = ("WARNING: Arquivo é maior que o permitido!"); } if($erro != ""){ echo "$erro"; } else{ // Acrescentamos o campo: foto_data. // Em VALUES, alteramos o primeiro %s por '$foto'; e acrescentamos o comando NOW(). mysql_select_db($database); $query_rsUltimaFoto = "SELECT *, date_format(foto_data, '%d/%m/%Y') AS foto_data FROM w_floricultura ORDER BY foto_id DESC"; $rsUltimaFoto = mysql_query($query_rsUltimaFoto) or die(mysql_error()); $row_rsUltimaFoto = mysql_fetch_assoc($rsUltimaFoto); $totalRows_rsUltimaFoto = mysql_num_rows($rsUltimaFoto); $fotoRequisitada = $row_rsUltimaFoto['foto_id']; $foto = $row_rsUltimaFoto['foto_id']+1; $insertSQL = sprintf("INSERT INTO w_floricultura (foto_foto, foto_titulo, foto_valor, foto_legenda, foto_data) VALUES ('$foto', %s, %s, %s, NOW())", GetSQLValueString($_POST['foto_titulo'], "text"), GetSQLValueString($_POST['foto_valor'], "text"), GetSQLValueString($_POST['foto_legenda'], "text")); // Função que cria a imagem, não trabalharemos com upload. function reduz_imagem($img, $max_x, $max_y, $fotoTmp) { //pega o tamanho da imagem ($original_x, $original_y) list($width, $height) = getimagesize($img); $original_x = $width; $original_y = $height; // se a largura for maior que altura if($original_x > $original_y) { $porcentagem = (100 * $max_x) / $original_x; } else { $porcentagem = (100 * $max_y) / $original_y; } $tamanho_x = $original_x * ($porcentagem / 100); $tamanho_y = $original_y * ($porcentagem / 100); $dimensao = $_POST["dimensao"]; if ($dimensao=='H'){ $tamanho_x= 500; $tamanho_y= 375; }elseif ($dimensao=='V'){ $tamanho_y= 500; $tamanho_x= 375;} $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); $image = imagecreatefromjpeg($img); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); return imagejpeg($image_p, $fotoTmp, 100); } $pasta = "fotos"; //Nome da pasta para onde vão os arquivos if (copy($fotoTmp, "$pasta/".$foto)){ echo("<font face=verdana size=1><b>Arquivo enviado com sucesso!</b></font>"); }else{ echo ("<font face=verdana size=1><b>Erro no envio do arquivo!</b></font>"); } mysql_select_db($database); $Result1 = mysql_query($insertSQL) or die(mysql_error()); } $insertGoTo = "index.php"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Postar foto</title> </head> <body> <h1>Postagem de fotos</h1> <html> <body> <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1"> <table align="center"> <tr valign="baseline"> <td width="106" align="right" nowrap>Foto:</td> <td width="375"><input name="foto_foto" type="file" size="32" /> </tr> <tr valign="baseline"> <td nowrap align="right">Nome:</td> <td><input type="text" name="foto_titulo" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap align="right">Valor:</td> <td><input type="text" name="foto_valor" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap align="right" valign="top">Descrição:</td> <td><textarea name="foto_legenda" cols="50" rows="5"></textarea> </td> </tr> <tr valign="baseline"> <td nowrap align="right">Dimensionar foto:</td> <td> <input name="dimensao" type="radio" value="V" checked="CHECKED" /> Vertical <input name="dimensao" type="radio" value="H" /> Horizontal</td></tr> <tr valign="baseline"> <td height="27" align="right" nowrap> </td> <td><input name="submit" type="submit" value="Postar Foto" /></td> </tr> </table> <input type="hidden" name="MM_insert" value="form1"> </form> </body> </htm> Fico no aguardo! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago Barraviera 0 Denunciar post Postado Fevereiro 13, 2009 Ae deixa avisado para habilitar a biblioteca GD, o meu aki nao tava funfanfo, dai eu lembrei de habilitar a GD agora ta show vlws otimo tuto cara flwss Compartilhar este post Link para o post Compartilhar em outros sites
lgcovizzi 0 Denunciar post Postado Junho 25, 2009 Ae deixa avisado para habilitar a biblioteca GD, o meu aki nao tava funfanfo, dai eu lembrei de habilitar a GD agora ta show vlws otimo tuto cara flwss alguem poderia ajudar, tentei habilitar a função GD, ativando a linha php_gd2.dll dentro do php.ini, porém não contínua não estar funcionando. Então meu pedido são: 1) alguem poderia colocar o sistema completo para download? 2) como habilitar o GD, e como verificar se o GD está habilitado localmente. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites