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ço: </label>
<input type="text" name="nome_servico" class="input" value="<?php echo $dados->nome_servico; ?>"/>
<br><br>
<label for="descricao" class="texto">Descrição do Serviç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!