Jump to content
Soneca_BO

Chamando imagem blob pelo php

Recommended Posts

Pessoal boa tarde,

 

estou com um grande problema 
Criei um código para gravar imagens no banco como mediumblob até ai blz.

mas quando vou chamar na tela da erro na imagem, aparece uma tela preta com o iconeca da imagem em branco (um quadrado branco)

fiz o teste em uma tabela simples, só com uma chave primaria, e ok chama normal, mas quando vou usar na tabela que devo que tem 2 chaves primarias não sei como chamar...
se alguem poder me ajudar agradeço

para fazer uma pesquisa nessa tabela tenho que saber o cliente que é e o código do cliente (um cliente pode ter vários códigos e cada código uma imagem diferente)
CLI_COD (CODIGO DO CLIENTE)
CON_COD (CODIGO DO CONTRATO)

CON_ARQ_ID ID DO CODIGO DO ARQUIVO)

 

segue o codigo:

 

 

Tela que incluir os dados:
 

<?php
if(count($_FILES) > 0) {
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
    require_once "db.php";
    $imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name']));
    $imageProperties = getimageSize($_FILES['userImage']['tmp_name']);
    
 $sql = "UPDATE eAMS.CONTRATO SET CON_ARQ_TYPE='{$imageProperties['mime']}', CON_ARQ_CONTRATO='{$imgData}' WHERE CLI_COD='BOT' and CON_COD='005' and CON_ARQ_ID='7'";


    $current_id = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error($conn));
    if(isset($current_id)) {
        header("Location: listImages.php");
    }
}
}
?>

<HTML>
<HEAD>
<TITLE>Upload Image to MySQL BLOB</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload">
<label>Upload Image File:</label><br/>
<input name="userImage" type="file" class="inputFile" />
<input type="submit" value="Submit" class="btnSubmit" />
</form>
</div>
</BODY>
</HTML>

tela que lista os dados: 

<?php
    require_once "db.php";
    $sql = "SELECT CON_ARQ_ID FROM eAMS.CONTRATO where CLI_COD='BOT' ORDER BY CON_ARQ_ID DESC"; 
    $result = mysqli_query($conn, $sql);
?>
<HTML>
<HEAD>
<TITLE>List BLOB Images</TITLE>
<link href="imageStyles.css" rel="stylesheet" type="text/css" />
</HEAD>
<BODY>
<?php
    while($row = mysqli_fetch_array($result)) {
    ?>
        <img src="imageView.php?image_id=<?php echo $row["CON_ARQ_ID"]; ?>" /><br/>
    
<?php        
    }
    mysqli_close($conn);
?>
</BODY>
</HTML>

Script que chama a imagem:

 

<?php
    require_once "db.php";
    
    if(isset($_GET['image_id'])) {
        $sql ="SELECT CON_ARQ_TYPE, CON_ARQ_CONTRATO FROM eAMS.CONTRATO WHERE CON_ARQ_ID='".$_GET['image_id']."' and CLI_COD='BOT'";
        $result = mysqli_query($conn, $sql) or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysqli_error($conn));
        $row = mysqli_fetch_array($result);
        header("Content-type: " . $row["CON_ARQ_TYPE"]);
        echo $row["CON_ARQ_CONTRATO"];
    }
    mysqli_close($conn);

 

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other sites

Qual exatamente é o problema? Exibir a imagem, inserir com chave composta ou consultar uma chave composta?

 

Pois, lá em cima é sempre realizado um update e, na consulta, está utilizando apenas um ID.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By emmanuelsiqueira30
      Estou tentando inserir os valores de uma matrícula e gerar já as parcelas das mensalidades.
      Agradeço toda ajuda possível.
       
      cadMatriculaModel.php
      <?php include("../Controller/conexao.php"); include("../Controller/util.php"); header('Content-Type: text/html; charset=utf-8'); $id_aluno = $_POST['id_aluno']; $id_curso = $_POST['id_curso']; $data_matricula = date("Y-m-d"); $codunico_matricula = bin2hex(random_bytes(8)); $tipo_pag_matricula = $_POST['tipo_pag_matricula']; $dia_venc_matricula = $_POST['dia_venc_matricula']; $n_parc_matricula = $_POST['n_parc_matricula']; $sql_valor_curso = "SELECT * FROM curso WHERE id_curso = $id_curso"; $result_valor_curso = mysqli_query($con,$sql_valor_curso); $row_valor_curso = mysqli_fetch_assoc($result_valor_curso); $valor_curso = $row_valor_curso['valor_curso']; $dt_curso_ini = $row_valor_curso['data_inicio_curso']; $dt_curso_fim = $row_valor_curso['data_fim_curso']; $dif = strtotime($dt_curso_fim) - strtotime($dt_curso_ini); $periodo_curso_meses = floor($dif / (60 * 60 * 24 * 30)); $valor_parc = intval($valor_curso) / $periodo_curso_meses; $sqlmatricula = "INSERT INTO matricula (id_aluno,id_curso,data_matricula,codunico_matricula,tipo_pag_matricula,dia_venc_matricula,n_parc_matricula) VALUES ('$id_aluno','$id_curso','$data_matricula','$codunico_matricula','$tipo_pag_matricula','$dia_venc_matricula','$n_parc_matricula')"; $resultmatricula = mysqli_query($con,$sqlmatricula); $ultimamatricula = mysqli_insert_id($con); if($resultmatricula == true){ //echo "<script>alert('Matrícula realizada com sucesso.');</script>"; $x = 1; while($x >= $n_parc_matricula){ //for ($x = 0; $x == $n_parc_matricula; $x++) { /* $dia = date("d"); $mes = date("m"); $ano = date("Y"); $dt_venc_pr = date("Y/m/d",strtotime("+".$x." month",mktime(0, 0, 0,$dia,$mes,$ano))); echo $dt_venc_pr; */ $sqlpr = "INSERT INTO parcelareceber (id_matricula,id_aluno,id_curso,valor_parc_pr,dt_pag_pr) VALUES ('$ultimamatricula','$id_aluno','$id_curso','$valor_parc','$data_matricula')"; $resultpr = mysqli_query($con,$sqlpr); echo $sqlpr; if($resultpr == true){ echo "<script>alert('Parcelas geradas com sucesso.');</script>"; }else { echo "<script>alert('Erro na inserção das parcelas.');</script>"; echo $resultpr; } } echo $x; echo $n_parc_matricula; }else{ } cadMatriculaView.php
      <!DOCTYPE html> <html> <title>Matrícula do aluno</title> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> </head> <body> <?php include 'menuView.php'; ?></br></br> <?php ini_set( 'default_charset', 'UTF-8' ); ini_set( 'mbstring.http_output', 'UTF-8' ); ini_set( 'mbstring.internal_encoding', 'UTF-8' ); header("Content-Type: text/html; charset=UTF-8",true); ?> <font face="verdana" size="4"> <form action="../Model/cadMatriculaModel.php" method="POST"> <fieldset> <legend>CONSULTA DE ALUNO</legend> <label for="proprietario_id_prop">Digite o CPF do aluno: </label> <input type="text" class="form-control" name="textbox" id="textbox" placeholder="Digite CPF do aluno"></br> ALUNO: <select class="form-control" name="id_aluno" id="select" style="width: 400px"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM aluno"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['idaluno']; ?>"><?php echo $dados['cpfaluno'] . " - " . $dados['nomealuno']; ?></option> <?php } ?> </select></br> </fieldset> <fieldset> <legend>ESCOLHA DO CURSO</legend> CURSO: <select class="form-control" name="id_curso" id="select"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM curso"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['id_curso']; ?>"><?php echo $dados['nome_curso'] . " - " . $dados['turno_curso']; ?></option> <?php } ?> </select></br> </fieldset> TIPO DE PAGAMENTO: <select name="tipo_pag_matricula"> <option value="1">A PRAZO</option> </select></br> DIA DO VENCIMENTO: <input type="text" name="dia_venc_matricula" maxlength="2"> NÚMERO DE PARCELAS: <input type="text" name="n_parc_matricula" maxlength="2"><br> <span style="color: red; font-size: 8pt">* Campos obrigatórios.</span></br> <button type="submit" name="btninserir">INSERIR MATRÍCULA</button> </form> </font> <script> jQuery.fn.filterByText = function(textbox, selectSingleMatch) { return this.each(function() { var select = this; var options = []; $(select).find('option').each(function() { options.push({value: $(this).val(), text: $(this).text()}); }); $(select).data('options', options); $(textbox).bind('change keyup', function() { var options = $(select).empty().data('options'); var search = $(this).val().trim(); var regex = new RegExp(search,"gi"); $.each(options, function(i) { var option = options[i]; if(option.text.match(regex) !== null) { $(select).append( $('<option>').text(option.text).val(option.value) ); } }); if (selectSingleMatch === true && $(select).children().length === 1) { $(select).children().get(0).selected = true; } }); }); }; $(function() { $('#select').filterByText($('#textbox'), false); $("select option").click(function(){ alert(1); }); }); </script> </body> </html> E também est[a dando esse erro Notice: Undefined index: dia_venc_matricula in C:\xampp\htdocs\curso\Model\cadMatriculaModel.php on line 15 mas já verifiquei a variávewl e está correta.
    • By luigiferrari
      Boa Tarde, sou iniciante no php, mas acho q isso seria coisa simples de se fazer. Porem não estou conseguindo...
      Se puderem me ajudar. 
      Agradeço desde já!


    • By winter2018
      Boa tarde galera 
       
      Preciso por favor de uma ajuda.
      Estou a criar um sistema de cadastro de currículos em php.
       
      Preciso que ao escolher  as línguas que o usuário falar, essas informações sejam armazenadas num array para depois serem inseridas  no  mysql junto com outros campos, como  nome,  idade, etc.
       
       
      Sei programar em php mas não  tenho ideia de como fazer isso.
       
      Por favor me ajudem 
       
       
      Winter 2018
    • By SECONDSS
      boa noite, preciso entregar algumas questões até daqui a pouco,meu tempo está corrido e gostaria da ajuda de vocês para resolver essa questão. obrigado desde já!

      QUESTÃO 16 -

      Desenvolva um programa utilizando PHP e exibir os resultados desse programa que tenha todas as classes suficientes para que:
      Represente o nome completo de uma pessoa, composto de três strings (nome próprio, nome do meio e nome da família). 
      ATENÇÃO - 
      Escreva nessa classe o método rubrica que retorna somente as iniciais do nome completo em caracteres minúsculos, Escreva nessa classe o método assinatura que retorna as iniciais dos nomes próprio e do meio (com pontos) Escreva nessa classe um método que retorne o nome de família completo. Por exemplo, se o nome da pessoa representado por essa classe for “Jack Mill Dam”, o método rubrica deve retornar ”jmd” e o método assinatura deve retornar ”J.M. Dam”. Para facilitar, considere armazenar os três nomes em strings separadas.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.