Jump to content
novoAquiNoForum

[Resolvido] COMO RECUPERAR UM ARQUIVO BLOB DO MYSQL E SALVAR NUMA PASTA COM PHP

Recommended Posts

Olá Pessoal,

 

Estou com uma dúvida sagaz, tenho uma coluna tipo BLOB no MYSQL, a qual armazena arquivos PDF's enviados a partir do upload. Não salvo o arquivo em pasta na hora do UPLOAD, somente salvo no banco de dados, sei que não é aconselhável, mas tenho meus motivos para fazer desta forma. Emfim, agora preciso fazer um script em PHP que recupere este arquivo do banco e baixe ou salve direto numa pasta que tenho, pois depois preciso enviar estes arquivos como anexo em e-mail, através do PHP Mailer, pois acho que é o único jeito de fazer. Alguém tem uma luz aí?

Share this post


Link to post
Share on other sites

Olá, depois de muita pesquisa, resolvi o meu problema com o seguinte código:

<?php
include("conexao.php");

//recebo os ids dos arquivos selecionados pelo usuário
$selecao  = substr($_GET['selecao'],0,-1);

//Monto a query para a consulta no Banco de dados MYSQL
$sql = "SELECT
         id_documento
        ,nome_documento_original
        ,dados_documento 
        FROM documentos 
        WHERE id_documento IN ($selecao)";

//Executo a query
$result = $conn->query($sql);

//Faço um laço de repetição While enquanto existir registros
while($query = mysqli_fetch_object($result)){
  	
   //Coloco meu arquivo BLOB na variável $arquivo
    $arquivo = $query->dados_documento;

   //Este é o caminho que quero criar os arquivos com o nome de cada um
    $caminho = "MINHA_PASTA/".$query->nome_documento_original;

   //Este comando cria o PDF com base dos arquivos binários listados do banco
   //Abre o arquivo
    $fp = fopen($caminho, "a");
   //Escreve dentro do arquivo o conteudo binário salvo no banco
    $criaPDF = fwrite($fp, $arquivo);
   //Fecha o arquivo
    fclose($fp); 
}

?>

 

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 Jefferson andre
      Boa tarde, por favor me ajudem com uma situacao que nao sei como proceder em linguagens web
       
      Tenho dois forms na mesma tela, ao selecionar o cliente e clicar no botao buscar dados, as informacoes que eu pegar no mysql vao "abastecer" os campos do segundo formulario, e entao enviadas para a inclusao utilizando um outro botao no final da pagina.
       
      Nao sei como atualizar as informacoes desses campos na tela, e que posteriormente serao enviados para o banco de dados incluindo as novas informacoes.
       
      Agradeço sugestoes sobre a tela enviada.

    • By alisonalves
      Boa tarde Pessoal. Meu site passou por uma nova reestruturação e algumas páginas mudaram de nome e outras antes eram ".html" e agora são ".php". Acontece que muitas dessas páginas antigas são bastante visitadas e eu não queria perder a visitação delas. Vou dar um exemplo. Tenho uma página chamada carros_minas-gerais.html que passará a ser chamar carros_minas-gerais.php. Como faço para esta página antiga não perder visitação? Pensei em mantê-la com um redirecionamento para a página nova via "refresh". E com o passar do tempo quando estas páginas antigas perderem visitação eu as deletaria. Está certo meu raciocínio ou não? Valeu
    • By AndersonWS
      Tenho um código que aparentemente estaria certo porém ele "trava" e  não mostra os resultados.
      Creio que o problema está na parte de "buscar" o json apenas.
      Segue o código:
      <style>.carregando{color:#666;display:none;}</style> <div class="col-md-7"> <label for="empreendimento">Escolha o empreendimento</label> <select name="empreendimento" class="form-control" required="" id="empreendimento"> <option value="">-- Escolha um empreendimento --</option> <?php $sqlVs = "SELECT `id`,`nm` FROM `empreend` WHERE `dis`='1' ORDER BY `nm` ASC"; $queryVs = mysqli_query($link, $sqlVs); $total = mysqli_num_rows($queryVs); if ($total > 0){ while($r = mysqli_fetch_array($queryVs)){ $id = $r['id']; $nm = $r['nm']; echo '<option value="'.$id.'">'.$nm.'</option>'; } } else { echo '<option value="0">Não há empreendimentos disponíveis</option>'; } ?> </select> </div> <div class="col-md-5"> <label for="unidades">Unidade</label> <span class="carregando">Aguarde, carregando...</span> <select name="unidades" id="unidades" class="form-control" required=""> <option value="">-- Escolha uma unidade --</option> </select> </div> <script src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load('jquery', '1.3'); </script> <script type="text/javascript"> $(function(){ $('#empreendimento').change(function(){ if( $(this).val() ) { $('#unidades').hide(); $('.carregando').show(); $.getJSON('ajax/busca_emp.php?search=',{empreendimento: $(this).val(), ajax: 'true'}, function(j){ var options = '<option value=""></option>'; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].id + '">' + j[i].nm + '</option>'; } $('#unidades').html(options).show(); $('.carregando').hide(); }); } else { $('#unidades').html('<option value="">– Escolha um empreendimento –</option>'); } }); }); </script> if(!empty($_GET["search"])) { $empreendimento = trim($_GET["search"]); $empreendimento = mysqli_real_escape_string($link, $empreendimento); $unidades = array(); $sqlVs = "SELECT `id`,`nm` FROM `empreendimento` WHERE `id`='$empreendimento' ORDER BY `nm` ASC"; $queryVs = mysqli_query($link, $sqlVs); $total = mysqli_num_rows($queryVs); if ($total > 0){ while($r = mysqli_fetch_array($queryVs)){ $unidades[] = array( 'id' => $r['id'], 'nm' => $r['nm'], ); } } echo( json_encode( $unidades ) ); } else { echo 'vazio'; } Ele trava e fica apenas mostrando:
      Aguarde, carregando...
       
      Olhei o json e ele está recuperando:
      [{"id":"1","nm":"Condominio"}]
×

Important Information

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