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

Recuperacao de dados em campo type file


Guilherme SS

Pergunta

Pessoal, estou com dificuldades no seguinte:

- Tenho um formulario para editar imoveis de uma imobiliaria, com dados como endereco e preço, que são de tipo texto, e fotos , que cadastra apenas o endereco dela no banco de dados, mas na hora que vou recuperar esses dados ele só recupera os do tipo texto, não aparecendo o endereco dela no campo tipo file, pois esse campo tem que existir se quiser cadastrar uma nova foto encima dessa, mas se for deixado em branco, no caso se quiser deixar a mesma foto que já tem, ele cadastra o endereco como vazio, apagando a foto e deixando sem nada, como poderia resolver isto? Como manter a mesma foto sem precisar recadastrar ela? Ou como fazer aparecer o endereco dela no campo type file?

Agradeco desde já, Obrigado!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Basta fazer um if, se o campo estiver vazio não faz nada, se estiver preenchido pega o nome da imagem que está no BD, apaga e move a nova imagem enviada com o mesmo nome (isso se você permitir apenas um tipo de arquivo de imagem), caso permitir mais de um tipo, ai terá que fazer um update na tabela com o novo nome.

Link para o comentário
Compartilhar em outros sites

  • 0

http://www.php.net/manual/pt_BR/reserved.variables.files.php

--> http://br.php.net/manual/pt_BR/features.file-upload.php

http://imasters.uol.com.br/artigo/1057/php/_files/

Ai quando a deixar do jeito que tá você tem que usar a imaginação oras boas ... verifica se uma nova foto foi postada se sim troca tudo inclusive no banco se não deixa o banco sem mexer é simples ..

Link para o comentário
Compartilhar em outros sites

  • 0

Assumindo que o seu campo se chame arquivo...

if(!empty($_FILES['arquivo']['tmp_name'])){
move_uploaded_file($_FILES['arquivo']['tmp_name'],$_FILES['arquivo']['name']);
$arquivo_novo = ", arquivo='".$_FILES['arquivo']['name']."'";
/*
AQUI você DEVE PEGAR O ARQUIVO ATUAL E EXCLUIR...
*/
}


$atualiza = mysql_query("UPDATE tabela SET campo1='$algumacoisa',campo2='$outracoisa'".$arquivo_novo." WHERE id = '$id'");

A lógica é essa... existem outra maneiras de se fazer isso...

Link para o comentário
Compartilhar em outros sites

  • 0

Tentei fazer deste jeito e tambem com algumas modificaçoes mas não funcionou.

Vou passar o codigo da pagina de edicao que tenho. Se for possivel gostaria de aluma dica com base nela.

<?
require_once("connDB.php");
$codimovel = $_POST['codimovel'];
$categoria = $_POST['categoria'];
$endereco = $_POST['endereco'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$brevedesc = $_POST['brevedesc'];
$descricao = $_POST['descricao'];
$preço = $_POST['preço'];
$tipo = $_POST['tipo'];
$quartos = $_POST['quartos'];
$banheiros = $_POST['banheiros'];
$garagem = $_POST['garagem'];
$tamanhocasa = $_POST['tamanhocasa'];
$tamanholote = $_POST['tamanholote'];
$fotoimagem1 = $_FILES['fotoimagem1']['name'];
$fotoimagem2 = $_FILES['fotoimagem2']['name'];
$fotoimagem3 = $_FILES['fotoimagem3']['name'];
$fotoimagem4 = $_FILES['fotoimagem4']['name'];
$fotoimagem4 = $_FILES['fotoimagem4']['name'];
$fotoimagem5 = $_FILES['fotoimagem5']['name'];
$destaque = $_POST['op'];
$tmpfotoimagem1 = $_FILES['fotoimagem1'] ['tmp_name'];
$tmpfotoimagem2 = $_FILES['fotoimagem2'] ['tmp_name'];
$tmpfotoimagem3 = $_FILES['fotoimagem3'] ['tmp_name'];
$tmpfotoimagem4 = $_FILES['fotoimagem4'] ['tmp_name'];
$tmpfotoimagem5 = $_FILES['fotoimagem5'] ['tmp_name'];
$destino1 = "fotos/".$fotoimagem1;
$destino2 = "fotos/".$fotoimagem2;
$destino3 = "fotos/".$fotoimagem3;
$destino4 = "fotos/".$fotoimagem4;
$destino5 = "fotos/".$fotoimagem5;
    $sql = "update tbimoveis set categoria='$categoria', endereco='$endereco', cidade='$cidade', estado='$estado', brevedesc='$brevedesc', descricao='$descricao', preço='$preço', tipo='$tipo', quartos='$quartos', banheiros='$banheiros', garagem='$garagem', tamanhocasa='$tamanhocasa', tamanholote='$tamanholote', fotoimagem1='$destino1', fotoimagem2='$destino2', fotoimagem3='$destino3', fotoimagem4='$destino4', fotoimagem5='$destino5', destaque='$destaque'
    where codimovel='$codimovel'";
    if ($query = @mysql_query($sql) or die("Erro na inserção no Banco de Dados ".mysql_error())){
            
                header("Location: index.php?opcao=acesso/editar");
            
            }else{
            
                echo "Ocorreu uma falha no cadastro de imagem!";
    }    
    if(move_uploaded_file($tmpfotoimagem1,$destino1)){
if(move_uploaded_file($tmpfotoimagem2,$destino2)){
if(move_uploaded_file($tmpfotoimagem3,$destino3)){
if(move_uploaded_file($tmpfotoimagem4,$destino4)){
if(move_uploaded_file($tmpfotoimagem5,$destino5)){
                }
            }
        }
    }
}else{
echo "Erro ao fazer o upload das fotos!";
}
?>

Desculpe pelas duvidas, mas sou iniciante e estou com pouco tempo, mas valeu pela ajuda de todos.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

se eu entendi voce já faz o upload, o que quer é exibir o nome do arquivo que foi enviado, isto?

Se for, não vai conseguir colocar no espaço do arquivo, se colocar vai ter problema no envio, pode ver se existe o campo e mostre ou o nome ou a imagem, se existir, se não tiver nenhuma voce pode criar uma imagem escrito 'sem imagem definida' ou algo assim e mostrar

No insert e no update verifique se foi colocada a imagem se for altere ou inclua, se não não faz nada com o campo dela

if(!empty($_FILES['fotoimagem1'] ['tmp_name']))

{

$tmpfotoimagem1 = $_FILES['fotoimagem1'] ['tmp_name'];

$destino1 = "fotos/".$fotoimagem1;

}

if(!empty($_FILES['fotoimagem2'] ['tmp_name']))

{

$tmpfotoimagem2 = $_FILES['fotoimagem2'] ['tmp_name'];

$destino2 = "fotos/".$fotoimagem2;

}

e assim por diante

**unica coisa que voce só pode fazer o update se existir a imagem, se não ecistir não tem que atualizar nada, para facilitar faça um para cada imagem

No insert n~ao precisa se preocupar que se tiver o $destinoX tera conteudo se tiver em branco vai ficar sem nada mesmo

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,2k
    • Posts
      652k
×
×
  • Criar Novo...