Jump to content
toarelli

Visualizar arquivos PDF

Recommended Posts

toarelli

Caros amigos.

Recorro a ajuda dos amigos, com muita humildade.

Estou fazendo uma rotina em PHP, onde após o usuário abrir uma lista de ARQUIVOS efetuado UPLOAD, possa ser visualizado na tela. <== até aqui tudo bem.

O problema é o seguinte:

Após escolher um arquivo de sua preferência, o sistema possa abrir o arquivo.

O código abaixo, faz a visualização, mas tenho de informar manualmente, o que não quero.

    //O código abaixo Visualiza, mas infelizmente, tenho que informar manualmente o caminho
    $file = 'upload/arquivo.pdf' ;
	$filename = 'arquivo.pdf';
	
	header('Content-type: application/pdf');
	header('Content-Disposition: inline; filename="' .$filename. '"');
	header('Content-Transfer-Encoding; binary');
	header('Accept-Ranges; bytes');
	readfile($file);

 

Gostaria que após selecionar um arquivo, o Sistema sozinho possa passar a Variável e o sistema possa localizar na pasta e abrir na tela.

Por favor amigos, como consigo efetuar e realizar essa rotina ?

Grato,

Toarelli

Share this post


Link to post
Share on other sites
toarelli

Caros amigos.

Por favor, alguém pode me ajudar nesse problema.

Está me deixando doido.

Grato.

Share this post


Link to post
Share on other sites
toarelli
Em 15/04/2018 às 12:03, toarelli disse:

Caros amigos.

Recorro a ajuda dos amigos, com muita humildade.

Estou fazendo uma rotina em PHP, onde após o usuário abrir uma lista de ARQUIVOS efetuado UPLOAD, possa ser visualizado na tela. <== até aqui tudo bem.

O problema é o seguinte:

Após escolher um arquivo de sua preferência, o sistema possa abrir o arquivo.

O código abaixo, faz a visualização, mas tenho de informar manualmente, o que não quero.


    //O código abaixo Visualiza, mas infelizmente, tenho que informar manualmente o caminho
    $file = 'upload/arquivo.pdf' ;
	$filename = 'arquivo.pdf';
	
	header('Content-type: application/pdf');
	header('Content-Disposition: inline; filename="' .$filename. '"');
	header('Content-Transfer-Encoding; binary');
	header('Accept-Ranges; bytes');
	readfile($file);

 

Gostaria que após selecionar um arquivo, o Sistema sozinho possa passar a Variável e o sistema possa localizar na pasta e abrir na tela.

Por favor amigos, como consigo efetuar e realizar essa rotina ?

Grato,

Toarelli

 

Caros amigos, tentei fazer assim mas não consegui.

<?php 

       include"../Connections/config.php";

       //Variáveis Passada por Método POST
       $idDoclieGet = isset($_GET['idDoclie']) ? $_GET['idDoclie'] : false;
       $idDoclie = isset($_POST['idDoclie']) ? $_POST['idDoclie'] : $idDoclieGet;

       $pastaDoclieGet = isset($_GET['pastaDoclie']) ? $_GET['pastaDoclie'] : false;
       $pastaDoclie = isset($_POST['pastaDoclie']) ? $_POST['pastaDoclie'] : $pastaDoclieGet; 


      //Busca no Banco de Dados
      $sql_pegaDocto = 'SELECT * FROM docCliente WHERE idDoclie = :idDoclie AND pastaDoclie = :pastaDoclie';
      
      try{
        $query_pegaDoctos = $conecta->prepare($sql_pegaDocto);
        $query_pegaDoctos->bindValue(':idDoclie',$idDoclie,PDO::PARAM_STR);
        $query_pegaDoctos->bindValue(':pastaDoclie',$pastaDoclie,PDO::PARAM_STR);        
        $query_pegaDoctos->execute();
        
        $res_queryPegaDocto = $query_pegaDoctos->fetchAll(PDO::FETCH_ASSOC);
        
        }catch(PDOexcetpion $error_docto){
          echo 'Erro ao seleciona o documento!';  
        }
        
        foreach($res_queryPegaDocto as $resDocto){
              $idDoclie    = $resDocto['idDoclie'];
              $pastaDoclie = $resDocto['pastaDoclie'];
        } 

            header('content-type: application/pdf');
            readfile('docClie/'.$resDocto['pastaDoclie']);
  
 /*

  //Visualizar o documento na tela
    $file = 'docClie/"'.$pastaDoclie.'"' ;
	$filename = $pastaDoclie;
	
	header('Content-type: application/pdf');
	header('Content-Disposition: inline; filename="' .$filename. '"');
	header('Content-Transfer-Encoding; binary');
	header('Accept-Ranges; bytes');
	readfile($file);
*/


?>

 

 

Share this post


Link to post
Share on other sites
devgoncalo

tens que fazer debug para perceber o que está mal...

o resultado da query à bd está correto?

fazes foreach($res_queryPegaDocto

mas depois usas o $resDocto['pastaDoclie'] fora do ciclo... deves usar a variavel $pastaDoclie

o caminho para o ficheiro está correto?

nao podes fazer $file = 'docClie/"'.$pastaDoclie.'"' ; tem aspas a mais

Share this post


Link to post
Share on other sites
toarelli

Caros amigos

Obrigado pela ajuda, consegui resolver, desta forma:

<table>
  
<?php if($pastaDoclie != "" ){  ?>
   <a href="painel.php?exe=clientes/verDcto&idDoclie=<?php echo $idDoclie;?>" type="button" target="_blank" 
      class="btn btn-default btn-xs" style="font-size: 14px;" title="Visualizar Documento">
      <i class="fa fa-search"></i> Tela</a>

<?php } elseif($pastaDoclie == "" ) { ?>
    <a href="#" type="button" class="btn btn-default btn-xs" title="Não Consta Documento" disabled
       style="font-size: 14px;" ><i class="fa fa-search"></i> Tela</a>
<?php } ?>   
  
</table>
 <?php 

      include"../Conexao/config.php";

       //Variáveis Passada por Método POST
       $idDoclieGet = isset($_GET['idDoclie']) ? $_GET['idDoclie'] : false;
       $idDoclie = isset($_POST['idDoclie']) ? $_POST['idDoclie'] : $idDoclieGet;

      $sql_pegaDocto = "SELECT * FROM docCliente WHERE idDoclie = :idDoclie";
     
      try{
        $query_pegaDoctos = $conecta->prepare($sql_pegaDocto);
        $query_pegaDoctos->bindValue(':idDoclie',$idDoclie,PDO::PARAM_STR);
        $query_pegaDoctos->execute();
        
        $res_queryPegaDocto = $query_pegaDoctos->fetchAll(PDO::FETCH_ASSOC);
        
        }catch(PDOexcetpion $error_clientes){
          echo 'Erro ao seleciona os clientes!';  
        }

        foreach($res_queryPegaDocto as $resDocto){
                $idDoclie     = $resDocto['idDoclie'];
                $nomeDoclie   = $resDocto['nomeDoclie'];     
                $pastaDoclie  = $resDocto['pastaDoclie'];
                $validaDoclie = $resDocto['validaDoclie'];
          
              //Visualizar documento na tela
              header('Content-type: application/pdf');
              header('Content-Disposition: inline; filename="'.$pastaDoclie.'"');
              header('Content-Transfer-Encoding; binary');
              header('Accept-Ranges; bytes');
              readfile('docClie/'.$resDocto['pastaDoclie']);    
  
          }


    ?>

 

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.