Ciao a tutti.
Ho scritto un pezzo di codice che mi crea un file zip, me lo serve e me lo cancella.
E, stranamente
, funziona.
qui il pezzo di codice
codice:
// faccio scaricare
ob_end_clean();
header("Content-type: application/zip");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma:');
header('Content-Length: '.filesize($nome_file_zip));
$a_file = pathinfo($nome_file_zip);
header("Content-Disposition: attachment; filename=\"".$a_file['basename']."\"");
$handle = fopen($nome_file_zip, 'rb');
while (!feof($handle)){
echo fread($handle, 8192);
}
fclose($handle);
unlink($nome_file_zip);
exit();
Ora mi piacerebbe tornare alla pagina che stavo gestendo. Invece la pagina rimane quella da cui chiamo il pezzo di codice e il programma si ferma dopo aver fatto quello che deve fare.
è ovvio che i problemi sono
e
ma, se non li metto, il file mi viene corrotto (in pratica ci appiccica la parte di pagina che avevo già creato e quella che creerò.
c'è un modo per
- catturare la pagina prima di ob_end_clean()
- cambiare nuovamente l'header dopo che ha fatto il file per tornare a quello originale
o sto chiedendo la luna al php?