Thiago_si 0 Denunciar post Postado Maio 12, 2011 Bom Dia pessoal! Tenho uma página aqui de edição de dados de um produto, onde o usuário pode editar o nome do produto, sua descrição, se é lançamento ou não e a imagem. O que eu to tentando fazer é que se ele não enviar nenhuma imagem, que sem mantenha o caminho da imagem no banco de dados. O que tá acontecendo é o seguinte: eu limitei a estrutura de upload de imagem para "entrar" nela apenas se o usuario mandar alguma imagem. Só que não é o que está acontecendo. Esse é o código da estrutura da edição: if(isset($_GET['id'])){ $idProduto = mysql_real_escape_string($_GET['id']); $sqlBusca = "SELECT * FROM produto WHERE idProduto = '".$idProduto."'"; $rsBusca = mysql_query($sqlBusca) or die (mysql_error()); $arrBusca = mysql_fetch_array($rsBusca); $nomeProduto = $arrBusca['nomeProduto']; $descProduto = $arrBusca['descProduto']; $lancamento = $arrBusca['lancamento']; if($lancamento == "S") $checked = 'checked="checked"'; else $checked = ''; } if($_POST['button'] == "editar"){ $idProduto = $_POST['idProduto']; $nomeProduto = $_POST['nomeProduto']; $descProduto = $_POST['descProduto']; $lancamento = $_POST['lancamento']; if(isset($_FILES['imagemProduto'])){ $imagemProduto = $_FILES['imagemProduto']; $pasta = ("Produto_".$idProduto); delTree("imagens/fotostemp/"); mkdir("imagens/fotostemp/",0777); if (!is_dir("imagens/".$pasta."/")){ mkdir("imagens/".$pasta."/",0777); } $Destino = ("imagens/fotostemp/"); $Nome = $imagemProduto['name']; $Tamanho = $imagemProduto['size']; $Tipo = $imagemProduto['type']; $Tmpname = $imagemProduto['tmp_name']; // Caminho completo de destino da foto $Caminho = $Destino . $Nome; $CaminhoImagem = ("painel/imagens/".$pasta."/".$Nome); $CaminhoThumb = ("painel/imagens/".$pasta."/thumb_".$Nome); // Tudo OK! Move o upload! move_uploaded_file($Tmpname, $Caminho); }else{ $CaminhoThumb = $arrBusca['thumbProduto']; $CaminhoImagem = $arrBusca['imagemProduto']; } $sqlGravaFoto = "UPDATE produto SET nomeProduto = '".$nomeProduto."', descProduto = '".$descProduto."', lancamento = '".$lancamento."', thumbProduto = '".$CaminhoThumb."', imagemProduto = '".$CaminhoImagem."' WHERE idProduto = ".$idProduto; $rsGravaFoto = mysql_query($sqlGravaFoto) or die (mysql_error()); require_once("foto_trataegrava.php"); if($rsGravaFoto){ $alerta = 'Produto editado com sucesso!'; }else{ $alerta = 'Houve um erro, tente novamente!'; } } ?> HTML da página: <!DOCTYPE HTML> <html lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?php include('_metatag.php'); ?> <link href="css/estilo.css" rel="stylesheet" type="text/css" /> <link rel="icon" href="../favicon.ico" type="image/ico" /> <link rel="shortcut icon" href="../favicon.ico" /> <?php include('_js.php'); ?> <?php if($rsGravaFoto){ echo "<script language='javascript'> window.location = 'listar_produtos.php' </script>"; } ?> <script language="javascript" type="text/JavaScript"> var maxCaracteres=225; function soma(el) { qtdeRestante = (maxCaracteres - el.value.length); if (qtdeRestante <= 0) { el.value = el.value.substr(0,maxCaracteres); document.formCad.caracteres.value=0; } else { document.formCad.caracteres.value=qtdeRestante; } } function exibir() { document.formCad.caracteres.value=maxCaracteres; } window.onload = exibir; </script> </head> <body> <?php include('_header.php'); ?> <section> <div class="limite"> <section class='quad-int'> <h1 class="barra-topo cinza-claro uppercase"><span>Editar Produto</span></h1> <form name="formEdit" method="post" action="" enctype="multipart/form-data"> <table width="700" border="0" cellspacing="0" cellpadding="0" class="sem-borda"> <tr> <td width="129" align="right">Nome do Produto:</td> <td width="811"> <input type="text" name="nomeProduto" value="<?=$nomeProduto?>" id="nomeProduto" class="form-input"> </td> </tr> <tr> <td align="right">Descrição do Produto:</td> <td> <textarea name="descProduto" id="descProduto" maxleght="20" onKeyUp="soma(this)" onKeyChange="soma(this)" cols="45" rows="5" class="form-input" style="width:300px; height:200px;"><?=$descProduto?></textarea> Caracteres restantes: <input type="text" readonly name="caracteres" id="caracteres" class="form-input" size="6"></td> </tr> <tr> <td align="right">Imagem do Produto: </td> <td> <input type="file" name="imagemProduto" id="imagemProduto" class="form-input"></td> </tr> <tr> <td align="right">Lançamento? </td> <td> <input type="checkbox" value="S" <?=$checked?> name="lancamento" id="lancamento" class="form-input"></td> </tr> <tr> <td colspan="2" align="center"><input type="hidden" name="idProduto" id="idProduto" value="<?=$idProduto?>"><input type="submit" name="button" id="button" value="editar" class="button small green"></td> </tr> </table> </form> </section> </div> </section> <?php include('_footer.php'); ?> </body> </html> Eu dei um echo em $_FILES['imagemProduto'] e está sempre ficando com o valor Array. Já tentei até fazer if($_FILES['imagemProduto'] != array()){ já que ambos ai exibem Array e não adiantou. Tá sempre entrando na condição. Isso tá fazendo com que na hora de dar o update ele apague do banco o nome da imagem, invalidando o caminho. Quem puder me ajudar ai, ficarei grato. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
romabeckman 0 Denunciar post Postado Maio 12, 2011 Olá, acredito que o erro está na condição abaixo: if(isset($_FILES['imagemProduto'])){ verifique desta forma if($_FILES['imagemProduto']['name']){ Boa sorte... Compartilhar este post Link para o post Compartilhar em outros sites
Thiago_si 0 Denunciar post Postado Maio 12, 2011 Resolvido! Valeu romabeckman! :D Compartilhar este post Link para o post Compartilhar em outros sites