El Antileech se utiliza para evitar exponer el link directo a un archivo que pueda descargarse.
Otra ventaja de ésta técnica, es que podemos forzar las descargas para que se realicen desde nuestra página.
Lo que vamos a hacer, es generar un archivo de descarga que, dependiendo de algún parámetro que pueda llegarle, va a leer el contenido de un archivo, y ese contenido, será impreso en nuestro archivo de descarga.
De ésta forma, la ubicación real del archivo nunca será expuesta.
El ejemplo:
<?php
$archivo = "documento.pdf";
$carpeta = "descargas/";
header("content-disposition: attachment; filename=" . $archivo);
header("content-type: application/octet-stream");
header("content-length: " . filesize($carpeta . $archivo));
header("pragma: no-cache");
header("expires: 0");
$lectura = fopen($carpeta . $archivo,"r");
echo fread($lectura,filesize($carpeta . $archivo));
fclose($lectura);
exit();
?>
Lo que nos va a interesar modificar, es el valor de las variables $archivo
y $carpeta
.
Según cada caso, puede llegar el nombre del archivo mediante un $_POST
o un $_GET
; o en lugar del nombre, algún id que a través de alguna consulta a base de datos, nos de el nombre del archivo a descargar.
Las posibilidades son tantas como escenarios enfrentemos.