Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 149

Alteração campo file upload

22-04-2010 15:17

Olá. Nova pergunta. Fiz o cadastro de um produto com de uma imagem pelo campo FILE.
Beleza, tudo ok.
No meu listar produtos na área adm. tem um botão editar ou alterar. Quanto clico nele vai novamente para o form com todos os campo preenchidos. Minha pergunta é e o campo FILE. Fica vazio. Tentei colocar value com o nome do arquivo vindo do banco mais não deu resultado. Como posso fazer isto?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Alteração campo file upload

22-04-2010 15:47

Geralmente em caso de admin, não é chamado o nome da figura no input file, e sim, é carregada, via img src

Se quer alterar a imagem, você tem que fazer o seguinte:

NO FORMULÁRIO

- Criar um input hidden com o nome da figura, o mesmo gravado no BD
- Criar um novo input file, que poderá ou não receber o novo arquivo


NO SCRIPT DE GRAVAÇÃO

- Verificar se o input file novo, veio com algum valor, se sim, houve a necessidade de editar a figura existente
- Se veio com valor, deve se fazer o upload do novo arquivo
- Usar o unlink para deletar o arquivo antigo "valor vindo do input hidden"
- fazer um rename, para trocar o nome do arquivo antigo pelo nome do arquivo novo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 149

Alteração campo file upload

22-04-2010 20:20

Fiz assim.
Só para um controle no form sobre o campo FILE. mostro a imagem que vem quando a ação for editar ou excluir. E lá embaixo um hidden passando o nome da foto no banco.

<label>         <span>Imagem do Produto</span>                 <?php                                 $fotoform = "<img class = produp src = imagensprodutos/".$foto.">";?>         <?php if($acao=="Alterar"){echo $fotoform; echo "<span>Escolha uma nova imagem</span>"; }?>         <?php if($acao=="Excluir"){echo $fotoform;}?>         <input type="file" name="txt_arquivo" class="inserircat" id="txt_arquivo"/>         </label>   <input name="nomefoto" id="nomefoto" type="hidden" class="btn2" value="<?php echo $foto;?>" />

Em um arquivo op recebo tudo. Os campos do form incluindo a ação (Inserir, Alterar ou Excluir) e o "nomefoto" do input que me serviu no UPDATE e no EXCLUIR.

No inserir eu usei :

if ($acao == "Inserir") {     $arquivo = $_FILES['txt_arquivo'];     $nome = $arquivo['name'];     $imagem = $arquivo['tmp_name'];     $md5 = md5(uniqid(rand()));            $extensoes_validas = array('.jpg','.JPG','.jpge','.JPEG','.gif', '.GIF','.png', '.PNG');     set_time_limit(0);     $extensao = strrchr($nome,'.');     echo $extensao;          if(!in_array($extensao,$extensoes_validas)){     echo "<script>alert('Arquivo Não suportado');</script>";     echo("<script>history.back();</script>");     exit();}          $img = imagecreatefromjpeg($imagem);       $largura_original_x = imagesx($img);     $altura_original_y = imagesy($img);           if($largura_original_x > $altura_original_y){         $largura_nova      = 200; // altura nova     $altura_nova    = ($altura_original_y * $largura_nova) / $largura_original_x; // largura nova         }          if($largura_original_x < $altura_original_y){         $altura_nova      = 200; // altura nova     $largura_nova    = ($largura_original_x * $altura_nova) / $altura_original_y; // largura nova         }           $nova_imagem = imagecreatetruecolor($largura_nova,$altura_nova);       imagecopyresampled($nova_imagem,$img,0,0,0,0,$largura_nova,$altura_nova,         $largura_original_x,$altura_original_y);        imagejpeg($nova_imagem,"imagensprodutos/$md5",95);     imagedestroy($img);     imagedestroy($nova_imagem);          $txt_arquivo = "$md5";               $sql = "INSERT INTO produtos (id_categoria, id_subcategoria, produto, foto, codigo, unidade, tipoembalagem, descricao, preco, estado, destaque, lancamento)  VALUES ('$txt_idcategoria', '$txt_idsubcategoria', '$txt_produto', '$txt_arquivo', '$txt_codigo', '$txt_unidade', '$txt_tipoembalagem',  '$txt_descricao', '$txt_preco', '$txt_estado', '$txt_destaque', '$txt_lancamento')";     //echo $sql;     mysql_query($sql) or die ("Não foi possível inserir os dados");     echo '<script type="text/javascript">alert("Protuto INSERIDO com sucesso.")</script>';     echo '<script type="text/javascript">history.go(-2);</script>';     /*echo "<script type = 'text/javascript'>location.href='index.php?link=6'</script>";*/     } 

No UPDATE

<?php if ($acao == "Alterar") {     $arquivo = $_FILES['txt_arquivo'];     $nome = $arquivo['name'];     $imagem = $arquivo['tmp_name'];     $md5 = md5(uniqid(rand()));            $extensoes_validas = array('.jpg','.JPG','.jpge','.JPEG','.gif', '.GIF','.png', '.PNG');     set_time_limit(0);     $extensao = strrchr($nome,'.');     echo $extensao;          if(!in_array($extensao,$extensoes_validas)){     echo "<script>alert('Arquivo Não suportado');</script>";     echo("<script>history.back();</script>");     exit();}          $img = imagecreatefromjpeg($imagem);       $largura_original_x = imagesx($img);     $altura_original_y = imagesy($img);           if($largura_original_x > $altura_original_y){         $largura_nova      = 200; // altura nova     $altura_nova    = ($altura_original_y * $largura_nova) / $largura_original_x; // largura nova         }          if($largura_original_x < $altura_original_y){         $altura_nova      = 200; // altura nova     $largura_nova    = ($largura_original_x * $altura_nova) / $altura_original_y; // largura nova         }           $nova_imagem = imagecreatetruecolor($largura_nova,$altura_nova);       imagecopyresampled($nova_imagem,$img,0,0,0,0,$largura_nova,$altura_nova,         $largura_original_x,$altura_original_y);        imagejpeg($nova_imagem,"imagensprodutos/$md5",95);     imagedestroy($img);     imagedestroy($nova_imagem);          $txt_arquivo = "$md5"; unlink("imagensprodutos/$nomefotobd");              $sql = "UPDATE produtos SET      id_categoria        =    '$txt_idcategoria',     id_subcategoria        =    '$txt_idsubcategoria',     produto                =    '$txt_produto',     foto                =    '$txt_arquivo',     codigo                =    '$txt_codigo',     unidade                =    '$txt_unidade',     tipoembalagem        =    '$txt_tipoembalagem',     descricao            =    '$txt_descricao',     preco                =    '$txt_preco',     destaque            =    '$txt_destaque',     lancamento            =    '$txt_lancamento',     estado                =    '$txt_estado'     WHERE id_produto = '$id' ";               mysql_query($sql) or die ("Não foi possível alterar os dados");     if($voltar=="dois"){         echo '<script type="text/javascript">alert("Produto ALTERADO com sucesso.")</script>';         echo '<script type="text/javascript">history.go(-2);</script>';      }else{     echo '<script type="text/javascript">alert("Protuto ALTERADO com sucesso.")</script>';     echo '<script type="text/javascript">history.go(-2);</script>';      }     /*echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL=principal.php?link=19'>          <script type \"text/javascript\"> alert(\"e-mail excluído com sucesso.\");    </script>";*/      } ?>

e no Excluir

<?php if ($acao == "Excluir") {     $sql = "DELETE FROM produtos WHERE id_produto = '$id'"; mysql_query ($sql);     unlink("imagensprodutos/$nomefotobd"); echo '<script type="text/javascript">alert("Protuto EXCLUÍDO com sucesso.")</script>'; echo '<script type="text/javascript">history.go(-2);</script>'; } ?>

Ficou um pouco grande por causa do redução de imagem. Repeti duas vezes. Mas no meu caso aqui enquanto não faço uma função
(POR ISSO A QUESTÃO DA FUNÇÃO QUE COMENTEI NO OUTRO POST), salvei em outro arquivo e puxei com include.

Acho que é isso.
Está inserindo com nome único, reduzindo para um ramanho específico em dimenssões e bytes, Editando todos os campos em especial a foto que excluia antiga e inseri a nova e exclui tudo do banco e da pasta fotos. Como eu queria.

Até.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17582
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Alteração campo file upload

22-04-2010 21:03

Ficou bom. :ugeek: :wink:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado