Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Chiarelotto

Forçar download

Recommended Posts

fiz assim so que ele nao baixa.

 

 

 

<?php
include"includes/conecta.php";
$id = $_GET['id'];
$sql = mysql_query("select * from arquivo_contratante where id = '$id'", $conexao);
$vetor = mysql_fetch_array($sql);
// Define o tempo máximo de execução em 0 para as conexões lentas
set_time_limit(0);
// Arqui você faz as validações e/ou pega os dados do banco de dados
echo $aquivoNome = $vetor['imagem']; // nome do arquivo que será enviado p/ download
echo $arquivoLocal = '/imgs/envios/'.$aquivoNome; // caminho absoluto do arquivo
// Verifica se o arquivo não existe
if (!file_exists($arquivoLocal)) {
// Exiba uma mensagem de erro caso ele não exista
exit;
}
// Aqui você pode aumentar o contador de downloads
// Definimos o novo nome do arquivo
$novoNome = $aquivoNome;
// Configuramos os headers que serão enviados para o browser
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$novoNome.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($aquivoNome));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');
// Envia o arquivo para o cliente
readfile($aquivoNome);
?>
Dei echo ele esta entrando no if, entao dei echo e vem assim:
/imgs/envios/BOLETO FUNENSEG.docx
agora nao sei pq entra no if como vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução mais simples é usar o htaccess:

 

Jogue um arquivo .htaccess dentro da pasta onde ficam os arquivos que vão ser baixados:

RewriteEngine On
RewriteBase /
 
RewriteCond %{QUERY_STRING} ^download$
RewriteRule .(jpg|jpeg|gif|png|rar|zip)$ - [L,NC,T=application/octet-stream]

Para baixar o arquivo basta chamar ele com o sufixo ?download, por exemplo:

 

www.site.com.br/pasta-dos-arquivos/foto.jpg?download

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, ali você deve colocar as extensões dos arquivos que são permitidos, separando elas pelo pipe (|).

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz assim, so que quando e pdf e mp3 ele continua abrindo ao inves de baixar:

 

 

 

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^download$
RewriteRule .(jpg|jpeg|gif|png|rar|zip|pdf|doc|docx|xls|xlsx|mp3)$ - [L,NC,T=application/octet-stream]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente adicionando uma outra linha para estes arquivos forçando outro mime type (application/force-download, application/download, etc...) resolva...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicione os headers necessários:

$filename = 'images/chibi_kakashi.jpg';
$length   = filesize( $filename );

header( 'Content-Type: application/force-download' );
header( 'Content-type: application/octet-stream' );
header( sprintf( 'Content-Length: %u', $length ) );
header( sprintf( 'Content-disposition: attachment; filename="%s"', basename( $filename ) ) );
header( 'Pragma: no-cache' );
header( 'Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0' );
header( 'Expires: 0' );

echo readfile( $filename );
flush( );
exit;

Compartilhar este post


Link para o post
Compartilhar em outros sites

 function download( $path, $fileName = '' ){
 
       if( $fileName == '' ){
            $fileName = basename( $path );
        }

    header("Content-Type: application/force-download");
    header("Content-type: application/octet-stream;");
    header("Content-Length: " . filesize( $path ) );
    header("Content-disposition: attachment; filename=" . $fileName );
    header("Pragma: no-cache");
    header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
    header("Expires: 0");
    readfile( $path );
    flush();
    }

Para usar coloque

download($url.'/download.rar');

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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