Eliminar archivo después de tiempo en PHP
Pregunta
Tengo un script php que proporciona un enlace a un archivo temporal que se crea con el script. Quiero que la persona pueda descargar el archivo, pero no quiero que el archivo permanezca en el servidor durante mucho tiempo. Me gustaría eliminar el archivo, digamos quizás después de 2 minutos. ¿Cómo se puede hacer esto?
Solución
Puede eliminarlo justo después de la descarga. generar el contenido del archivo, luego cerrarlo y desvincularlo
.
Editar : ejemplo
$fo = fopen($f, 'rb') ;
$content = fread($fo, filesize($f)) ;
fclose($fo) ;
}
// Stream the file to the client
header("Content-Type: application/octet-stream");
header("Content-Length: " . strlen($archive));
header("Content-Disposition: attachment; filename=\"myfile.exe\"");
echo $archive;
unlink($f);
Otros consejos
Configure un trabajo cron para ejecutar su script de limpieza cada pocos minutos. Puede usar la función filemtime () para ver cuándo fue un archivo creado y elimínelo si el archivo se considera "suficientemente viejo".
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow