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 Caio Vargas
      Boa tarde pessoal blz ?
      Estou com uma dúvida sobre implementação do checkout transparente do mercado pago 
       
      Alguém já fez essa implementação eu estou com dúvida sobre a documentação que não estou conseguindo intender 
       
      Pelo botão eu só consigo insistir um produtos só então a opção correta seria o checkout transparente mesmo se alguém puder me ajudar agradeço 
    • By OSVALDO ARANTES JÚNIOR
      Boa tarde,  estou desenvolvendo uma consulta no php/mysql em diversas colunas. E gostaria de saber
      se existe um caracter especial para listar todos os dados, minha quere esta organizada da seguinte forma
       
      $query = sprintf("SELECT * FROM operacao  WHERE data_operacao BETWEEN '$data_inicial_rel' AND '$data_final_rel' AND estado_operacao = ' ' ORDER BY id_operacao ASC ;");
       
      quando declaro o valor do estado_operacao ele lista perfeitamente o valor, agora minha dúvida é se existe um 
      carater para listar todos os valores... para que eu use como value no opition do select, passar o valor TODOS pra a query
       
      desde já agradeço a atenção.
    • By joeythai
      Bom dia pessoal, minha dúvida é simples, vi que alguns arquivos xml tem a saída de data desta forma  "2020-01-22T09:18:50", como faço pra imprimir a data desta forma ? E o que significa esse T?]
      Eu estou usando o Carbon, to tentando encontrar esse padrão na documentação.
      2018-05-29T17:47:57 2018-05-29T17:47:57
    • By Sapinn
      Resolvi atualizar meu xampp para a versão 7.4.14 e estou com um erro de Internal Server Error que fica em um projeto que estou usando htacess para fazer urls amigáveis o arquivo usados são:
      Arquivo externo:
       
      <IfModule mod_rewrite.c>
          RewriteEngine on
          RewriteRule ^$ public/ [L]
          RewriteRule (.*)public/$1 [L]
      </IfModule>
       
      Dentro da pasta public:
       
      <IfModule mod_rewrite.c>
          Options -Multiviews
          RewriteEngine On
          RewriteBase /unset_mvc/public
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
      </IfModule>
       
      Dentro da pasta app:
      Options -Indexes
       
      Preciso de ajuda porquê não sei o que fazer, já tentei apagar algumas coisas no httpd.conf dentro do xampp mas não funcionou.
    • By violin101
      Caros amigo, saudações...

      por favor, me perdoa se postei na opção errada.
       
      estou com a seguinte dúvida.
       
      tenho o seguinte código no cadastro: 1234 0000 4320 9785
       
      como consigo mostrar /inibir os números no meio, para o usuário desta forma: 1234********9785
       
      Grato,
       
      Cesar
×

Important Information

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