Forçar download de arquivo

Neste Post irei mostrar de uma forma muito simploria de como forçar o download de qualquer arquivo do servidor usando essa maravilhosa ferramenta que é o PHP

1º Passo:

Enviei o nome do arquivo via GET.

Exemplo:

1
<a href="download.php?arquivo=".$nome."">Download</a>";

2º Passo:

Criei o nosso arquivo download.php que vai ser responsavel pela função de forçar o download.

download.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
 
	$file = $_REQUEST['arquivo'];		// pega o endereço do arquivo
 
 
		header("Content-Type: application/save");
		header("Content-Length:".filesize($file)); 
		header('Content-Disposition: attachment; filename="' . $file . '"'); 
		header("Content-Transfer-Encoding: binary");
		header('Expires: 0'); 
		header('Pragma: no-cache'); 
 
		$fp = fopen("$file", "r"); 		        // nesse momento ele le o arquivo e envia
		fpassthru($fp); 
		fclose($fp); 
 
		sleep(10);						//espero 10s
		unlink($file);					//apago o arquivo no servidor
 
?>

Muito fascil né pessoal?

Este script é muito util para forçar o download de arquivos .html e .pdf

Qualquer coisa posta ae !

5 Responses to “Forçar download de arquivo”

  1. troian  on março 12th, 2009

    Po legal cara… valeu as dicas aí de PHP!

    ;D

  2. Rafael  on março 15th, 2009

    Putz, muito bom mesmo. Funciona direitinho.

    Valeu a dica!

  3. Ivancio  on março 15th, 2009

    Opa, boa dica mano !

    Estava atraz disso…

  4. filipe  on julho 7th, 2009

    olá ,muito bom mesmo voce esta de parabens !
    vou indicar para todos !

    no meu arquivo tive que arrumar o formato da url ficou assim

    echo ‘Baixar arquivo‘;

    perfeito

    um abraço

  5. Alex Marques  on abril 19th, 2010

    Funcionou perfeitamente, havia tentado outro código parecido mas não havia funcionado. Este esta perfeito.
    Valeu mesmo!


Seu Comentário