S t o n e 0 Denunciar post Postado Setembro 30, 2008 Olá galera, baixei o script de upload de imagens do Fabyo, o script é muito bom, mas estou com um probleminha para implementa-lo, eu tenho a opcao de novo item e a opcao de alterar, if($acao == "gravarincluir"){ mysql_query("INSERT into portfolio values(null, '$titulo', '$sub_titulo', '$desenvolvimento', '$link', '$nome_thumb', '$nome_foto')"); } if($acao == "gravaralterar"){ mysql_query("UPDATE portfolio set por_titulo = '$titulo', por_sub_titulo = '$sub_titulo', por_link = '$link', por_desenvolvimento = '$desenvolvimento', por_thumb = '$nome_thumb', por_foto = '$nome_foto' where por_codigo = '$id' "); } Mas, toda vez que eu for alterar, eu tenho que inserir a imagem denovo, não teria alguma maneira de se o campo imagem estiver vazio ele apenas não fazer o insert no bd? ja tentei fazer isso sim, mas em algum lugar no script do fabyo ele faz a verificação do form e ainda não descobri qual é... acho que é por ai: 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>"; } } ai o link do tópico dele http://forum.imasters.com.br/index.php?showtopic=164120 Agradeço desde já! Compartilhar este post Link para o post Compartilhar em outros sites
PauloRJ 4 Denunciar post Postado Setembro 30, 2008 Stone. Se o campo no bd estiver fazio você simplesmente vai enviar a imagem como se estiver alterando sem problemas Faça um if caso exista a imagem: 1) Verificar se existe imagem 2) Pegar no nome da imagem e apagar ela do diretorio onde esta 3) Upload da nova imagem 4) Update na tabela com o nome da nova imagem compreendeu? No caso de que ja exita o registro na tabela nao faz diferença INSERT ou UPDATE a informação vai funcionar da mesma forma. ok Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 1, 2008 Como eu apago ela do diretorio onde ela está pelo php? :S Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 1, 2008 função unlink(); Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 1, 2008 Valeu Alaerte vou tentar aqui ;) Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 1, 2008 ok, para mais informações acesse o manual: http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.php.net/unlink Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 1, 2008 bah não concegui fazer.. tem como explicar um pouco melhor? o problema está no passo 3, não concigo fazer gravar a imagem novamente sem fazer upload, eu teria que pegar o nome no banco, deletar do diretorio, fazer a variavel receber o nome que estava no banco e inserir? .. :( Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 2, 2008 Tentei fazer tb if($acao == "gravaralterar") na function tirando a verificacao se existe imagem mas tb não deu :( Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 2, 2008 cole uma parte do código ai. Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 2, 2008 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>"; } } /*---------------------------GRAVAR NO BD!------------------------*/ $titulo = $_POST['titulo']; $sub_titulo = $_POST['sub_titulo']; $desenvolvimento = $_POST['desenvolvimento']; $link = $_POST['link']; include("conn.php"); $acao = $_GET['acao']; $id = $_GET['id']; if($acao == "gravarincluir"){ mysql_query("INSERT into portfolio values(null, '$titulo', '$sub_titulo', '$desenvolvimento', '$link', '$nome_thumb', '$nome_foto')"); } if($acao == "gravaralterar"){ mysql_query("UPDATE portfolio set por_titulo = '$titulo', por_sub_titulo = '$sub_titulo', por_link = '$link', por_desenvolvimento = '$desenvolvimento', por_thumb = '$nome_thumb', por_foto = '$nome_foto' where por_codigo = '$id' "); } Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 3, 2008 ngm conceguiu achar uma solução? :( Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Outubro 3, 2008 não estou vendo a parte do unlink ai ? tentou fazer onde ? Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 3, 2008 mas eu não tenho que fazer o novo upload antes de deletar a imagem? Compartilhar este post Link para o post Compartilhar em outros sites
S t o n e 0 Denunciar post Postado Outubro 9, 2008 Alguém poderia me explicar essa parte do código? function gera_fotos() { $diretorio = "../css/imagens/fotos_sites/"; 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'], 800, 700, $diretorio.$nome_foto); //passo o tamanho da thumbnail reduz_imagem($this->arquivo['tmp_name'], 160, 150, $diretorio.$nome_thumb); echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>"; Não entendi muito bem as últimas linhas Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites