Sacado de
www.php.net/readfile (usando el buscador con "forzar descarga" seguro igual habrá resultados):
Código PHP:
<?php
$file = '/var/www/html/file-to-download.xyz';
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename=' . basename($file));
readfile($file);
?>
Pruebalo... primero experimenta
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
, quiero ver el comportamiento...
Si estoy en lo correcto... si manejas BD puedes crear un campo auxiliar donde le darás algún valor si se llamó para su descarga... así pués solo si está vacio descargas y sí tiene valor borras. Podrías borrar todos los que tiene valor en el mismo script de descarga (para no alargar su permanencia) ó hacer un CRON JOB... solo ideas, igual no me parece haber leído cómo es que llamas a tus archivos.
Suerte!