Download di un file in automatico dopo la sua creazione

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti.
In PHP ho la necessità di far scaricare in automatico un file dopo che questo viene creato.
Ho provato in questo modo:
PHP:
<?php
    // Definisco il nome del file
    $file = fopen("Dati_Visualizza_Monit2.txt","w");
    
    // Inserisco nel file .txt tutti gli elementi
    fwrite($file, "Rigo1" . "\n");
    fwrite($file, "Rigo2" . "\n");
    fwrite($file, "Rigo3" . "\n");
    fwrite($file, "Rigo4" . "\n");
    fwrite($file, "Rigo5");
    
    // Chiudo il file
    fclose($file);
    
    // Metto in pausa per 3 secondi
    sleep(3);
    
    // Download file
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: 0");
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Content-Length: ' . filesize($file));
    header('Pragma: public');
    
    readfile($file);
?>
Con questo codice il file .txt viene creato correttamente ma in automatico mi viene scaricato un file con estensione .php e di dimensione 0 Kb.
Secondo voi dove sbaglio?
Grazie mille, ciao
 
Ciao prova cosi
Codice:
<?php
    // Definisco il nome del file
    $filename = "Dati_Visualizza_Monit2.txt";
    $file = fopen($filename,"w");
    
    // Inserisco nel file .txt tutti gli elementi
    fwrite($file, "Rigo1" . "\n");
    fwrite($file, "Rigo2" . "\n");
    fwrite($file, "Rigo3" . "\n");
    fwrite($file, "Rigo4" . "\n");
    fwrite($file, "Rigo5");
    
    // Chiudo il file
    fclose($file);
    
    // Metto in pausa per 3 secondi
    sleep(3);
    
    // Download file
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: 0");
    header('Content-Disposition: attachment; filename="'.basename($filename).'"');
    header('Content-Length: ' . filesize($file));
    header('Pragma: public');
    
    readfile($file);
 
Ciao illiterate2020, grazie mille per la risposta.
Avevi ragione. Era necessario creare una variabile con il nome del file e deve essere utilizzata questa per il download automatico del file.
Ciao e grazie.
 
Ultima modifica:

Discussioni simili