Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Artes Ussler

Download inline

Recommended Posts

Olá

 

Não sei se é o grupo correto, mas preciso saber como fazer o download de um arquivo, mas não quero que o mesmo apareça na URL.

 

Digamos que teria que ser "dentro" do HTML, ou seja, inline.

 

Até procurei na net, mas não encontrei nada relevante. Achei uns itens sob "Forçar download", seria isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio eu que sim, você pode utilizar uma página PHP para forçar o 

Download de algo. Segue exemplo:

 

CÓDIGO

<?php

function download ( $pdf )
{
	# DEFINE HEADERS
	header ( 'Cache-Control: private, no-transform, no-store, must-revalidate' );
	header ( 'Content-Disposition: attachment; filename="' . $pdf . '"' );
	header ( 'Content-Type: application/pdf');
	header ( 'Content-Transfer-Encoding: binary' );

	# "LER" O ARQUIVO
	readfile ( $pdf );

	# FECHA
	exit;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Primeiramente agradecendo a ajuda.

 

Usei o código postado acima. Ao abrir a página, faz o download do arquivo (PDF, no meu caso), mas somente salva um PDF de 1,21KB apenas, sendo que o arquivo tem 600KB.

 

E testei com outros arquivos PDF de tamanhos variados, e sempre salva um arquivo de 1,21KB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, em ambos os testes que acabei de realizar, o

mesmo salva os arquivos normalmente sem alteração 

no tamanho do arquivo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei em outro servidor e ocorre o mesmo problema: salva um arquivo de 1,21KB apenas.

 

Segue abaixo o código que fui alterando conforme necessário. Não consigo encontrar o problema.

<?php
$arquivo = 'Nome-do-Arquivo.pdf';
$local = '/downloads/';
$local_arquivo = $local.$arquivo;
header("Content-Description: File Transfer");
header("Content-Type: application/pdf");
header('Content-Disposition: filename='.$arquivo);
header('Content-Disposition: attachment; filename='.basename($local_arquivo));
header("Cache-Control: private, no-transform, no-store, must-revalidate");
header("Content-Transfer-Encoding: binary");
readfile($local_arquivo);
exit;
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, Artes Ussler disse:

Olá

 

Consegui fazer funcionar, finalmente.

 

Agradeço a ajuda de todos aqui!

 

 

Era o caminho do diretório, correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo, o erro na variável eu acho que tinha achado,

porém depois vi que você talvez corrigiu, sla, então

fiquei confuso e acabei "apagando" o post rsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Kefatif
      Prezados, boa tarde!
       
      Em uma tela faço o envio de arquivos PDF para uma pasta reservada para isso.
       
      Estou tendo dificuldade para criar um botão de download na tela de consultas, quando abro a página de consulta ele está me mostrando a seguinte mensagem: "Notice: Undefined variable: row in C:\xampp\htdocs\plataforma\indicadores\consultar.php on line 126"
       
      Podem me ajudar?
       
      <?php include_once 'autenticacao.php'; include_once'../conexao.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Envio de Ata</title> <link href="../css/estilo.css" rel="stylesheet"> <!-- Bootstrap Core CSS --> <link href="../css/bootstrap.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../css/modern-business.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <script src="../js/jquery.min.js"></script> </head> <body> <?php include_once 'nav-menu1.php'; ?> <!-- Page Content --> <div class="container" style="width: 90%"> <?php include_once 'cabecalho.php'; ?> <div class="row"> <?php include_once 'barra-lateral.php'; ?> <!-- Content Column --> <div class="col-md-9" style="width: 80%"> <h4><b>CONSULTAR UNIDADE</b></h4> <form class="form-inline" action="consultar.php" autocomplete="off" method="get"> <div id="form-callcenter"> <label style="width: 30%"> <input type="text" name="nome" class="form-control" placeholder="Digite o nome da unidade" style="width: 100%"> </label> <input type="submit" readonly value="Pesquisar" class="btn btn-primary"> </div> </form> <?php if (isset($_GET["nome"]) ) { $nome = $_GET["nome"]; include_once '../funcoes.php'; $sql = "select A.dt_envio, A.unidade, A.responsavel, A.observacao, A.anexo from controle_ata A where A.unidade like '%".$nome."%' order by A.dt_envio desc"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { ?> <table class="table table-hover table-bordered" id="tabela-dispensacao2"> <tr> <th>Unidade</th> <th>Data do envio</th> <th>Responsável</th> <th>Observação</th> <th>Ata</th> <th>Download</th> </tr> <?php if($row["anexo"] == ''){ $cor = "red"; }else{ $cor = "blue"; } while ($row = mysqli_fetch_array($result)){ foreach($row as $key => $values){ $row[$key]= utf8_encode($values); } ?> <tr> <td><?php echo $row["unidade"]?></td> <td><?php echo dataTela($row["dt_envio"]); ?></td> <td><?php echo $row["responsavel"]; ?></td> <td><?php echo $row["observacao"] ?></td> <td><?php echo $row["anexo"] ?></td> <td><a class="<?php if($row["ANEXO"] == ''){echo "link-nao-ativo";}?>" href='anexos/<?php echo $row["ANEXO"] ?>' target="_blank"> <i style="color:<?php echo $cor ?>" class="glyphicon glyphicon-download-alt"></i> </a> </td> </tr> <?php }//ENCERRANDO O WHILE ?> </table> <?php }else{ echo "Nenhuma unidade encontrada!<br>"; } } ?> <?php mysqli_close($con); ?> </div> </div> <!-- /.row --> </div> <!-- /.container --> <!-- jQuery --> <script src="../js/jquery.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../js/bootstrap.min.js"></script> </body> </html>  
       
      Agradeço a ajuda desde já!
    • Por LucasLV
      Boa tarde.
      Estou fazendo um script que faz o download de arquivos de acordo com uma referência no bd, para que os usuários não saibam e não tenham acesso ao local original.
      Ele faz o download corretamente, mas na hora de abrir o arquivo ele não abre, aparece que a extensão está incorreta ou o arquivo corrompido.
      Com arquivos PDF ele funciona normalmente, mas testei com arquivos jpg, mp4, zip e rar, e nenhum deles abriu.
       
      Esse é o código que faz o download:
      $r = $con->executar("SELECT `MENSAGENS_COD`,`ARQUIVO` FROM `LINKS_ARQUIVOS` WHERE `REFERENCIA` = ?;",array($_GET['file']),"F"); header('Content-Disposition: attachment; filename=Anexo Mensagem '.$r['MENSAGENS_COD'].'.'.pathinfo($r['ARQUIVO'],PATHINFO_EXTENSION)); header('Content-Type: '.mime_content_type($r['ARQUIVO'])); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.filesize($r['ARQUIVO'])); readfile($r['ARQUIVO']);  
      Pesquisando na internet vi exemplos com o content-type como octet/stream e sem esse contetnt-transfer-encoding, mas fiz testes com essas modificações e não obtive êxito.
      Também vi que quando abro os detalhes do arquivo (imagem) no Windows, o arquivo do servidor exibe as informações corretamente, como largura e altura, já o arquivo baixado não exibe nada.
    • Por Guilherme5889
      Então , eu preciso criar um sistema de download de arquivos em meu site , porém só quero que um certo cargo possa realizar o download, como faço para disponibilizar um arquivo para download sem passar ele para URL por exemplo , e se caso alguém tentar acessar a URL bloquear o download.
    • Por Guilherme Morete Felix
      Olá,
      Estamos upando arquivos em nossa plataforma via moodle, como base de regra, tais arquivos são em formato pdf.
      Temos como objetivo que o aluno apenas abra e visualize o documento, porém não consiga fazer o download, cópia, impressão ou algo no sentido mencionado.
      Caso não seja possível, uma saída secundária seria permitir a impressão dos arquivos com o cpf do aluno e um termo de compromisso como marca d'água.
      Alguém poderia me relatar se essas alternativas são possíveis, quais são as possibilidades e se alguma pessoa pode ajudar nesse aspecto? Desde já, muito obrigado!
    • Por nazesaria
      Ola, gostaria de saber se tem alguma forma de eu baixar essas paginas completa em .php, se eu clico nela vai em uma pagina em branco.
      E acessando direto do site não teria como, gostaria de ser por esse metedo, é possível? Como?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.