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

Update grava o caminho da imagem corretamente no BD, mas a imagem não sobe para a pasta.


mm_edilson

Pergunta

Amigos, quebrando a cabeça pra encontrar o erro. 

Tenho uma pasta "photos" para onde deve subir a imagem da logo. O arquivo php que faz o update precisa pegar a imagem de um input image, mudar o nome, criar o caminho para ela, gravar no BD, e subir a imagem para a pasta. 

Ele faz tudo, menos subir a imagem. 

Alguém poderia dar uma força?

...

<input type="hidden" class="logo" name="logo" value="<?php echo $row_igreja['Logo']; ?>">
	<?php 
      $logo_igreja = $row_igreja['Logo'];
      $logo = $logo_igreja; 
    ?>

<input id="selecao-arquivo" type="file" name="flImage" accept="image/*">         
     <div class="logo" id="foto_logo" name="foto_logo"><img id="imgPhoto" src="<?php echo $logo ?>"</img>
          <script type="text/javascript">
              foto_logo = document.getElementById('selecao-arquivo');
              foto_logo.addEventListener('change', function(e) {
              showThumbnail(this.files);})
                   function showThumbnail(files) {
        		            if (files && files[0]) {
        				        reader = new FileReader();
        				        reader.onload = function (e) {
        					    imgPhoto.src = e.target.result;}
        				        reader.readAsDataURL(files[0]);}}
           </script>
      </div>
                   
<label class="selecao-arquivo" for='selecao-arquivo'>Selecionar Imagem &#187;</label>
<input class="btn_edit" type="submit" name="salvar" value="SALVAR" onclick="<?php echo $confirma_edicao?>">

	<?php 
 	   	if(!empty($_POST)){
  			if (!empty($_FILES['flImage']['name'])){
            	$arquivo_tmp = $_FILES[ 'flImage' ][ 'tmp_name' ];
            	$nome_imagem = $_FILES[ 'flImage' ][ 'name' ];
            	$extensao = pathinfo ( $nome_imagem, PATHINFO_EXTENSION );
            	$extensao = strtolower ( $extensao );
            	strstr ( '.jpg;.jpeg;.gif;.png', $extensao  );
              	$novoNome = "logo_igreja" . '.' . $extensao;
                $destino = 'photos/' . $novoNome;
                @move_uploaded_file( $arquivo_tmp, $destino );
                $logo_atual = "http://www.sgi.dev.br/paginas/" . $destino;
            }else{
                $logo_atual = $_POST['logo'];
            }

$id = $_POST['id'];
$nome = $_POST['nome'];
$tipo = $_POST['tipo'];
$end = $_POST['rua'];
$nm = $_POST['numero'];
$comp =$_POST['complem'];
$bairro = $_POST['bairro'];
$cid = $_POST['cidade'];
$uf = $_POST['uf'];
$cep = $_POST['cep'];
$tel = $_POST['tel'];
$tel2 = $_POST['tel2'];
$email = $_POST['email'];
$site = $_POST['site'];
$razsoc = $_POST['razsoc'];
$cnpj = $_POST['cnpj'];
$obs = $_POST['obs'];
$logo = $logo_atual;
$dtorg = $_POST["dtorg"];
date_default_timezone_set('America/Sao_Paulo');
$ultimaatualiz = date('Y-m-d');
$sql = "UPDATE CadIgreja SET Nome=?,tipo=?,EnderecoRua=?,Num=?,Compl=?,Bairro=?,Cidade=?,UF=?,CEP=?,Tel=?,Tel2=?,Email=?,Site=?,RazSoc=?,CNPJ=?,Obs=?,Logo=?,DtOrg=?,UltimaAtualiz=? WHERE IdIgreja=?";

if($conn->prepare($sql)->execute([$nome,$tipo,$end,$nm,$comp,$bairro,$cid,$uf,$cep,$tel,$tel2,$email,$site,$razsoc,$cnpj,$obs,$logo,$dtorg,$ultimaatualiz,$id])){
echo '<script> alert ("Registro atualizado com sucesso!"); </script>';
} else {
echo '<script> alert ("Erro! Não foi possível atualizar o registro."); location.href=("painel.php?igreja_editar")</script>';
    
} } else {}
   
   ?>

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Eu fiz o teste por aqui, recebi várias mensagens de erro, desativei a rotina de validação da session, botei o meu banco de dados e consegui construir a tabela cadigreja (o meu banco de dados não aceita letras maiúsculas). Na hora de fazer o teste, ele reclamou que eu não tinha a pasta photos, então criei a pasta. Deu tudo certo, o arquivo que eu escolhi foi gravado como logo_igreja.ico, e no banco de dados o campo logo recebeu o nome http://www.sgi.dev.br/paginas/photos/logo_igr.

O que eu não consigo é avançar para o próximo registro. Vou trabalhar nisso agora.

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tudo indica que o seu código foi feito para alterar o cadastro da igreja com o IdIgreja=1.

Fiz um código resumo, e acho que você quis dizer que o programa faz tudo, menos atualizar a imagem do IdIgreja=1.

O programa pede para gravar a nova imagem na pasta photos (no computador local), mas no banco de dados você diz que ele foi parar lá na internet (www.sgi.dev.br), e a página que você edita busca a foto aonde você não gravou a imagem, ou seja, www.sgi.dev.br.

Fiz um código resumo, onde o programa grava a imagem na pasta photos e recupera a imagem na mesma pasta, tirando o portal do sgi.dev.br do código:

painel.php

<?php
$conn=new PDO("mysql:host=localhost;dbname=astudy","root","");
$resultado = $conn->prepare("SELECT * from cadigreja");
$resultado->execute();
$row = $resultado->fetchAll(PDO::FETCH_ASSOC);
$row_igreja=$row[0];
$tipo = $row_igreja['tipo'];
?>
<form id="formulario" method="POST" enctype="multipart/form-data" action="">
<table>               
<tr><td>ID:<td><input name="id" value="<?php echo $row_igreja['IdIgreja']; ?>">
<tr><td>Nome:<td><input name="nome" value="<?php echo $row_igreja['Nome']; ?>">
<?php 
$logo_igreja = $row_igreja['Logo'];
$logo = $logo_igreja; 
?>
<tr><td>Imagem:<td><input id="selecao-arquivo" type="file" name="flImage" accept="image/*">         
<script type="text/javascript">
foto_logo = document.getElementById('selecao-arquivo');
foto_logo.addEventListener('change', function(e) {
showThumbnail(this.files);})
function showThumbnail(files) {
if (files && files[0]) {
    reader = new FileReader();
    reader.onload = function (e) {
    imgPhoto.src = e.target.result;}
    reader.readAsDataURL(files[0]);}}
</script>
</table>
<div class="logo" id="foto_logo" name="foto_logo">
<img id="imgPhoto" src="<?php echo $logo ?>"></img>
<input class="btn_edit" type="submit" name="salvar" value="SALVAR">
</form>
<?php 
if(!empty($_POST)){
if (!empty($_FILES['flImage']['name'])){
    $arquivo_tmp = $_FILES[ 'flImage' ][ 'tmp_name' ];
    $nome_imagem = $_FILES[ 'flImage' ][ 'name' ];
    $extensao = pathinfo ( $nome_imagem, PATHINFO_EXTENSION );
    $extensao = strtolower ( $extensao );
    strstr ( '.jpg;.jpeg;.gif;.png', $extensao  );
    $novoNome = "logo_igreja" . '.' . $extensao; 
    $destino = 'photos/' . $novoNome;
    move_uploaded_file( $arquivo_tmp, $destino );
    $logo_atual = $destino;}
$id = $_POST['id'];
$nome = $_POST['nome'];
$sql = "UPDATE CadIgreja SET Nome=?,Logo=? WHERE IdIgreja=?";
if($conn->prepare($sql)->execute([$nome,$logo_atual,$id])){
echo '<script> alert ("Registro atualizado com sucesso!"); location.replace("painel.php")</script>';
} else {
echo '<script> alert ("Houve um erro. Tente novamente!"); location.href=("painel.php?igreja_editar")</script>';
} } else {}
?>

 

Editado por Frank K Hosaka
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,3k
×
×
  • Criar Novo...