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, 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
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

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