Força downloads de arquivos em PHP

Pesquisando achei esse script que força a baixar qualquer tipo de arquivo.

Crie uma arquivo baixar.php copie o código abaixo.

<?php

$arquivo = $_GET["arquivo"];
if(isset($arquivo) && file_exists($arquivo)){ // faz o teste se a variavel não esta vazia e se o arquivo realmente existe
 switch(strtolower(substr(strrchr(basename($arquivo),"."),1))){ // verifica a extensão do arquivo para pegar o tipo
 case "pdf": $tipo="application/pdf"; break;
 case "exe": $tipo="application/octet-stream"; break;
 case "zip": $tipo="application/zip"; break;
 case "doc": $tipo="application/msword"; break;
 case "xls": $tipo="application/vnd.ms-excel"; break;
 case "ppt": $tipo="application/vnd.ms-powerpoint"; break;
 case "gif": $tipo="image/gif"; break;
 case "png": $tipo="image/png"; break;
 case "jpg": $tipo="image/jpg"; break;
 case "mp3": $tipo="audio/mpeg"; break;
 case "php": // deixar vazio por seurança
 case "htm": // deixar vazio por seurança
 case "html": // deixar vazio por seurança
 }
 header("Content-Type: ".$tipo); // informa o tipo do arquivo ao navegador
 header("Content-Length: ".filesize($arquivo)); // informa o tamanho do arquivo ao navegador
 header("Content-Disposition: attachment; filename=".basename($arquivo)); // informa ao navegador que é tipo anexo e faz abrir a janela de download, tambem informa o nome do arquivo
 readfile($arquivo); // lê o arquivo
 exit; // aborta pós-ações
}
?>


Agora crie o HTML index.php e coloque o código abaixo.

<!--
Este será o link que apontará para o nosso script PHP.
Use no href "baixar.php?arquivo=" + caminho de seu arquivo;
No Exemplo abaixo utilizei uma imagem com o nome "imagem.jpg" que esta dentro da pasta "arquivos".
-->
<a href="baixar.php?arquivo=arquivos/imagem.jpg">Baixar Arquivo</a>

Agora abra o arquivo index.php e clique no link “Baixar Arquivo”.

Fonte: http://www.devmedia.com.br/forcar-download-de-arquivos-com-php/17097

wiliamluis

Deixe sua resposta