Ir para conteúdo
Fórum Script Brasil
  • 0

Upload de Imagens - Condicional para update


atoyansk

Pergunta

Pessoal, estou fazendo uma página de update de dados que incluem um upload de imagem.

Recupero os dados já cadastrados e insiro um campo tipo file para subir nova imagem, se o usuário desejar alterar este dado.

A ideia é que, se este campo for definido (imagem nova escolhida) gera novo nome e altera os dados no BD, caso contrário, usar os dados de imagem anteriores ($oldImage). Mas não está funcionando... Segue o código usado:

<?php
                $servicos = new Servicos;
                $dados = $servicos->listarUm();
                if(empty($dados)):
                    echo "Nenhum serviço encontrado";
                else:
            ?>  
            <form id="mainform" action="" method="post" enctype="multipart/form-data">
                <label for="nome_servico" class="texto">Nome do Servi&ccedil;o: </label>
                <input type="text" name="nome_servico" class="input" value="<?php echo $dados->nome_servico; ?>"/> 
                <br><br>
                
              <label for="descricao" class="texto">Descri&ccedil;&atilde;o do Servi&ccedil;o: </label>
                <textarea name="descricao" rows="" cols="" class="form-textarea"><?php echo $dados->descricao; ?></textarea>
                <br><br>
                
                <label for="oldImage" class="texto">Imagem Atual: </label>
                <img src="<?php echo $dados->imagem; ?>" width="352" height="184" name="oldImage"/>
                <input type="hidden" name="oldImage" value="<?php echo $dados->imagem; ?>"/>
                <br><br>
                <?php 
            endif;
            ?>
                <label for="figura" class="texto">Alterar Imagem: </label>
              <table cellpadding="0" cellspacing="0" id="id-form">
                    <tr>
                        <td><input type="file" name="figura" class="file_1" placeholder="Nenhuma imagem selecionada"/></td>
                        <td>
                        <div><a href="#" class="info"><img src="images/icons/help_p.gif"/><span>Selecione imagens sempre em formato horizontal, com as dimensões 352px de largura por 184px de altura, com as extensões PNG ou JPEG.</span></a></div>
                        </td>
                    </tr>
                </table>
                               
              <br><br>
                <label for="fsubmit"></label>
                <input type="submit" name="ok" class="inputBtn" value="Atualizar" title="Atualizar"/>
                 </form>
           
                <div class="box-evento">
                    <?php

                        if(isset($_POST['ok'])):
                    
                            /*recuperar dados do formulário*/
                            $id                = $_GET['id'];
                            $nome_servico     = $_POST['nome_servico'];
                            $descricao         = $_POST['descricao'];
                            $oldImage        = $_POST['oldImage'];
                            $figura         = $_FILES['figura']['name'];
                            $temporario        = $_FILES['figura']['tmp_name'];
                            
                            if($_FILES['figura']=""){
                                $imagem = $oldImage;
                            } else if(isset($_FILES['figura'])){
                                
                                define("PASTA_IMG", "imgs/");
                        
                                /*Renomear a foto*/
                                $extensao = end(explode(".", $figura));
                                $novoNome = uniqid().".".$extensao;
                                
                                move_uploaded_file($_FILES['figura']['tmp_name'], PASTA_IMG.$novoNome);
                                
                                $imagem = PASTA_IMG.$novoNome;
                            }
                                
                            $dataUpdate = array(
                                    $nome_servico,
                                    $imagem,
                                    $descricao,
                                    $id
                            );
                    
                            /*cadastrar no banco de dados*/
                            $servicos = new Servicos;
                            $servicos->atualizar($dataUpdate);
                            ?>
                                                        
                            <div class="status2"><?php echo "Registro atualizado com sucesso" .$nome_servico. ", " .$imagem. ", " .$descricao. ", " .$id. ", " .$novoNome. ", " .$oldImage. ", " .$_FILES['figura'];
                            //atualizar($dataUpdate);
                            ?></div>
                            
                            <?php
                        endif;
                    
                    ?>
                </div>

No retorno, estou dando um echo para verificar os dados que estão sendo enviados. E sempre cai como se o campo estivesse definido, mesmo que eu não escolha uma imagem no campo "figura". 

Há uma classe Servicos.php, que possui as funções listarUm() e atualizar().

Alguém poderia me ajudar a entender o que está acontecendo e como resolver?

Muito obrigado pela ajuda!

Editado por atoyansk
marcação de código
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Não sei se ajuda para o caso mas atenção que na instrução:

<?php
    if($_FILES['figura']="") { //atribuição
        $imagem = $oldImage;
    } else if(isset($_FILES['figura']))

Estás a fazer uma atribuição (ou seja, a limpar o conteúdo da variável) em vez de comparação (==).

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...