Ich würde in einer DB den Dateinamen + Timestamp der Anfrage auf die Datei speichern und nach 24 Stunden die zugehörige Datei und danach den DB-Eintrag löschen (bzw. per cronjob regelmäßig alle Dateien, deren Timestamp älter als 24 Stunden ist). Bis dahin sollte der Download erfolgreich gewesen sein bzw. der Nutzer hatte genügend Zeit.