Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jonny255d

Pegar imagem do banco com php e mysql

Recommended Posts

eae pessoal ,

 

preciso de uma ajuda , tenho um codigo que salva a imagem no banco de dados como longblob , porem quando eu pucho a imagem do banco , ela vem totalmente descriptografada , toda bagunçada

 

eu uso esse codigo para puchar

 

$resultado = "SELECT * FROM usuario WHERE userlogin = '$criptoNomeUsuario' AND ativo = 'sim'";
esse codigo pucha todos os resultados do banco perfeitamente ,
nome , id , data e tudo mais , porem quando coloco a imagem , ela da erro e não sei o pq
uso este codigo para gravar os dados na sessao:
$fotoPessoa = $listagem ["fotouser"];
$_SESSION['fotouser'] = $fotoPessoa;

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom , gostaria de guardar a foto dentro do banco de dados e o unico jeito que eu consegui fazer ate agora foi com blob , tem algum tuto que mostre como fazer ?? a ideia erra guardar a foto do usuario , tipo foto de perfil , e depois pucha-la para mostrar na tela de usuario

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, guardar imagem em banco não é uma boa prática.

 

O correto é guardar apenas o nome da imagem, e guardar a imagem em uma pasta direcionada apenas para isso.

 

Para exibir a foto depois, basta chamá-la como no exemplo abaixo:

<img src ="pasta/da/imagem/<?php echo $row['imagem']; ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom pessoal eu criei assim :

 

index.php

<form action="upload.php" method="POST" enctype="multipart/form-data">
 foto : <input type="file" required name="arquivo">
 <input type="submit" value="enviar">
 </form>

upload.php

<?php

include 'conexao.php';

$msg = false;

if(isset($_FILES['arquivo'])){

$extensao = strtolower(substr($_FILES['arquivo']['name'], -4));
$novo_nome = md5(time()) . $extensao;
$diretorio = "img/";

move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome);

$sql_enviar_noticia = mysqli_query($conecta, "INSERT INTO arquivo (codigo, arquivo) VALUES (null, '$novo_nome')");



 header("location:index.php");


?>

oque acham ?

 

mas nao estou conseguindo criar um esquema para puchar a imagem do diretorio e tambem nao estou conseguindo criar uma variavel que retorne Mensagens da pagina upload.php para a index.php como erro ou upload bem sucedido como <?php if($msg != false) echo "<p> $msg </p>"; ?>

 

mais alguma dica pessoal ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo aew??? Então eu tenho o que você precisa, sigua esse link do meu GitHub

https://github.com/ckcesar/UploadsImagens

É só baixar o projeto e colocar pra rodar na sua máquina, esta bem detalhado o upload das imagens, como busca do diretório.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo aew??? Então eu tenho o que você precisa, sigua esse link do meu GitHub

https://github.com/ckcesar/UploadsImagens

É só baixar o projeto e colocar pra rodar na sua máquina, esta bem detalhado o upload das imagens, como busca do diretório.

 

Espero ter ajudado.

 

eae man , entao , preciso que ela guarde a foto no banco e que depois jogue a foto denovo no meu html quando eu solicitar , esse esquema que vc mandou pra min n deu muito certo pra min :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, como o colega DSerma disse, não é uma boa prática.

 

Como sempre existe uma possibilidade... você pode encodar a imagem em base64 e inserir a "stringona"... /* isso não é legal */

 

Não aconselho utilizar por inúmeros motivos!!

Se atente, NÃO é um conselho... é uma possibilidade!

 

O ideal é você otimizar as suas imagens, upar-las na sua pasta de imagens ou cloud storage, e inserir apenas o nome da imagem no seu banco de dados.

 

Com isso, quando você requerer a imagem, você fará como o colega DSerma também disse.

 

Abraço!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, como o colega DSerma disse, não é uma boa prática.

 

Como sempre existe uma possibilidade... você pode encodar a imagem em base64 e inserir a "stringona"... /* isso não é legal */

 

Não aconselho utilizar por inúmeros motivos!!

Se atente, NÃO é um conselho... é uma possibilidade!

 

O ideal é você otimizar as suas imagens, upar-las na sua pasta de imagens ou cloud storage, e inserir apenas o nome da imagem no seu banco de dados.

 

Com isso, quando você requerer a imagem, você fará como o colega DSerma também disse.

 

Abraço!

 

 

 

opa , eu intendi isso man, e que não me expresei bem no comentario de cima , bom eu dei uma pesquisada e tem bastante gente falando a mesma coisa

 

index.php


<h1> up </h1>

<?php if($msg != false) echo "<p> $msg </p>"; ?>

<form action="upload.php" method="POST" enctype="multipart/form-data">
 foto : <input type="file" required name="arquivo">
 <input type="submit" value="enviar">
 </form>

 
 <img src ="img/<?php echo $row['arquivo']; ?>" />

upload.php

<?php

include 'conexao.php';

$msg = false;

if(isset($_FILES['arquivo'])){

$extensao = strtolower(substr($_FILES['arquivo']['name'], -4));
$novo_nome = md5(time()) . $extensao;
$diretorio = "img/";

move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome);

$sql_enviar_noticia = mysqli_query($conecta, "INSERT INTO arquivo (codigo, arquivo) VALUES (null, '$novo_nome')");


 if(!mysqli_query($sql_enviar_noticia)){
 
 
 $msg = "Falha ao enviar o arquivo";
 }
 else
 
 {$msg = "Arquivo enviado com sucesso";}

 header("location:index.php");
}

?>

oq vcs acham deste codigo ?? porem nao consegui puchar a imagem ainda do banco e nem deletala do banco junto com a imagem do diretorio , e a variavel $msg tambem n funfo :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer a variavel $msg funcionar com session , ficou perfeito , agora falta o arquivo deletar , do arquivo salvar fica facil criar o update mas o del nao tenho a minima ideia de como deletar do banco e do diretorio , isso eu nunca fiz , alguem pode me ajudar por favor ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para deletar o arquivo do diretório use no PHP unlink('Aqui passa o endereço onde encontra a imagem');

 

cesar , eu nao tenho muita experiencia com isso pode me dar uma ajuda com o codigo ??

<?php 

include "conexao.php";

$mostraDados = mysqli_query($conecta, "SELECT * FROM arquivo WHERE codigo = 1") or die (mysqli_error());
 unlink('img/');

?>

eu criei assim , mas n funcionou bem , como eu faço ?

 

por exemplo ai em cima quero deletar a imagem com o codigo 1 , do banco ela desaparece mas da pasta n

Compartilhar este post


Link para o post
Compartilhar em outros sites
unlink('caminho/para/a/imagem/e/o/nome/dela.jpg');

Você deve passar TODO o caminho da imagem, incluindo o nome dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites
unlink('caminho/para/a/imagem/e/o/nome/dela.jpg');

Você deve passar TODO o caminho da imagem, incluindo o nome dela.

 

<?php 

include "conexao.php";



$query1 = mysqli_query($conecta,"SELECT * FROM arquivo WHERE codigo = 10")or die (mysqli_error());
                                  
                                while($data=mysqli_fetch_array($query1))
                                {
                                    $delete=$data['file'];
                                    unlink("img/$delete");

                                }
                                $query = mysqli_query($conecta,"DELETE FROM arquivo WHERE codigo = 11")or die (mysqli_error());
                               
                                    if($result==TRUE)
                                    {

                                       $_SESSION['msg'] = "deletado";
                                        header("Location:index.php");
                                        exit;

                                    }
                                    else
                                    {
                                        $_SESSION['msg'] = "nao deleto";
                                        header("Location:index.php");
                                        exit;
                                    }
                            

?>

criei esse codigo mas quando chega na parte de apagar o diretorio , mostra acesso negado , alguem sabe resolver ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deu as devidas permissões na pasta?
A pasta e o seu conteúdo precisam ter permissões de gravação, edição e exclusão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você passou o endereço certo aonde encontra a sua imagem e não deletou?

 

testa colocar manual pra fazer um teste.

 

unlink('caminho/imagem.png');

 

Essa sua váriavel retorna o endereço correto?

$delete=$data['file'];
unlink("aqui tenta colocar a url toda da sua aplicação/img/$delete");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde amigos!!!

 

Aproveitando o tópico, estou com problema para buscar as imagens no banco. Tenho um página chamada estadios_getdata.php onde tenho o SELECT dos dados, tenho também uma página chamada estadios_datatable_consulta.php que mostra as informações na tela, porém não consigo mostrar a imagem, quero colocá-la dentro de uma div, conforme abaixo:

 

<div class="figure_estadio">
<img src="./images/upload/estadios/<?php echo $imagem_nome ?>" />
</div>
O que estou fazendo de errado?
Desde já, obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

No lugar da imagem fica aquele ícone de que ali deveria ter uma imagem, se tento abrir a imagem em outra aba da o seguinte erro:

 

Not Found

The requested URL /Scouts/images/upload/estadios/imagem/ was not found on this server.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.