Dezembro/2013
Forçar download de arquivos com PHP
Postado em 11/12/2013 por Rogerio - Categoria: Internet - Tags: download php forçar
Essa é uma dúvida um pouco comum quando temos um sistema que envia arquivos para download e você não quer que o arquivo seja aberto pelo navegador ou acessado diretamente como por exemplo http://www.seusite.com.br/downloads/arquivo.zip.// Define o tempo máximo de execução igual a 0 para as conexões lentas. set_time_limit(0); // Aqui você faz as validações, pega os dados do banco de dados, etc... $arquivoNome = 'imagem.jpg'; //nome do arquivo que será baixado. $arquivoLocal = '/pasta/do/arquivo/'.$arquivoNome; //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 contabilizar o download. //Define o novo nome do arquivo que o usuário vai salvar. $novoNome = 'imagem_nova.jpg'; // 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);