Esto generalmente se usa para hacer contadores
y/o impedir que se usen gestores de descarga.
La forma mas común de hacerlo es:
Código PHP:
header("Location: ".$_GET["a"]);
// Porque se uso a=midownload.zip en la url
La contra de esto es que si el cliente usa un gestor de descarga que monitorea las URLs de los navegadores (como Download Acelerator Plus), el archivo que baje va a ser inservible.
Para evitar esto debes hacer esto:
Código PHP:
$a = $_GET["a"];
header("Last-Modified: " . gmdate("D, d M Y H:i:s T", filemtime($a)));
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: ".mime_content_type($a));
header("Content-Disposition: attachment; filename=$a");
$fp = fopen($a,'rb');
if ( !$fp ) {
echo "Error al abrir";
exit();
}
if ( !fpassthru($fp) ) {
echo "Error al enviar";
exit();
}
header("Connection: close");
exit();
Si no tenes la libreria Mimetype puedes borrar la linea que usa mime_content_type() o reemplazarla por header("Content-type: application/octet-stream");
Saludos!