How to display saved images in the bank?

Asked

Viewed 692 times

-1

I can’t display the photos I’m sending to the database. I’m making a e-commerce photo and managed to send them to the database (Mysql). I created my database, then my table. I made the connection and all table items are receiving their data, only the photo is not displayed when I call. On the page home, I can call all the data, but the photo does not appear, only your name.

inserir a descrição da imagem aqui

Register:

<?php
        include_once("conexao.php");
        $arquivo    = $_FILES['arquivo']['name'];

        //Pasta onde o arquivo vai ser salvo
        $_UP['pasta'] = 'foto/';

        //Tamanho máximo do arquivo em Bytes
        $_UP['tamanho'] = 1024*1024*100; //5mb

        //Array com a extensões permitidas
        $_UP['extensoes'] = array('png', 'jpg', 'jpeg', 'gif');

        //Renomeiar
        $_UP['renomeia'] = false;

        //Array com os tipos de erros de upload do PHP
        $_UP['erros'][0] = 'Não houve erro';
        $_UP['erros'][1] = 'O arquivo no upload é maior que o limite do PHP';
        $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
        $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
        $_UP['erros'][4] = 'Não foi feito o upload do arquivo';

        //Verifica se houve algum erro com o upload. Sem sim, exibe a mensagem do erro
        if($_FILES['arquivo']['error'] != 0){
            die("Não foi possivel fazer o upload, erro: <br />". $_UP['erros'][$_FILES['arquivo']['error']]);
            exit; //Para a execução do script
        }


        //Faz a verificação do tamanho do arquivo
        else if ($_UP['tamanho'] < $_FILES['arquivo']['size']){
            echo "
                <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Gui/upload_imagem.php'>
                <script type=\"text/javascript\">
                    alert(\"Arquivo muito grande.\");
                </script>
            ";
        }

        //O arquivo passou em todas as verificações, hora de tentar move-lo para a pasta foto
        else{
            //Primeiro verifica se deve trocar o nome do arquivo
            if($UP['renomeia'] == true){
                //Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
                $nome_final = time().'.jpg';
            }else{
                //mantem o nome original do arquivo
                $nome_final = $_FILES['arquivo']['name'];
            }
            //Verificar se é possivel mover o arquivo para a pasta escolhida
            if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta']. $nome_final)){
                //Upload efetuado com sucesso, exibe a mensagem
                $query = mysqli_query($conn, "INSERT INTO produtos (
                nome_imagem) VALUES('$nome_final')");
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Gui/fotos'>
                    <script type=\"text/javascript\">
                        alert(\"Imagem cadastrada com Sucesso.\");
                    </script>
                ";  
            }else{
                //Upload não efetuado com sucesso, exibe a mensagem
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Gui/fotos'>
                    <script type=\"text/javascript\">
                        alert(\"Imagem não foi cadastrada com Sucesso.\");
                    </script>
                ";
            }
        }


    ?>

Where the images should appear:

<?php
if(isset($_POST['pesquisar'])){


    //reutiliza o codigo
    include_once ('conexao.php');


    $nome = $_POST['nome_imagem'];




    $sql ="SELECT * FROM produtos where nome_imagem like '%$nome%'";


    echo '<table class="table table-bordered">';
        echo '<thead>';
            echo '<tr>';
                echo '<th>Produtos</th>';
            echo '</tr>';
        echo '</thead>';
    $result = mysqli_query($conn, $sql);
    if (mysqli_num_rows($result) > 0) 
        while($row = mysqli_fetch_assoc($result))
        {
        echo '<tr>';
        echo '<td>'.$row['nome_imagem'].'</td>' . '<td>'. '<button type="button" class="btn btn-primary">Inserir</button>' . '</td>' . '<td>'. '<button type="button" class="btn btn-danger">editar</button>'.'</td>'. '<td>' . '<button type="button" class="btn btn-success">excluir</button>' . '</td>' ;
        echo '</tr>';
        }       
        echo '</table>';    
        }   

?>
  • Please edit your code. Is your image in a database blob? If so, you need to create an Handler to send the photo to the customer. It is also possible to do this with Base64, but this method consumes more bandwidth and processing.

  • By the code that she posted, no, she saved the file name in the table, and retrieves that name inside the webserver filesystem at the time of exacuting, if that directory is within the scope of fileserver just include the IMG TAG

1 answer

0

echo '<img src="'.$row['nome_imagem'].'">';

or if you need to set the full path of the image

echo '<img src="./path/'.$row['nome_imagem'].'">';

or even the absolute way

echo '<img src="https://servidorx.com/path/'.$row['nome_imagem'].'">';

Just use this HTML IMG TAG, using ECHO, you are simply printing (echoing) the content of the field literally, namely showing the file name, no longer using HTML to display the image. Any questions send more detailed where you are saving the image, and if it is inside a location on the server that can be read by the webserver, if not, you have other alternatives.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.