Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Forzare il download di un file con PHP

Articolo scritto da Max Bossi

In un vecchio articolo abbiamo visto come forzare il download di un file utilizzando ASP. Recentemente mi è stato chiesto come fare la stessa cosa utilizzando il PHP... ecco, quindi, questo breve e semplice articolo che vi spiegherà, appunto, come forzare il download di un file utilizzando PHP.

Mediante il codice che vedremo sarà, quindi, possibile obbligare il browser del nostro utente ad aprire un determinato collegamento come finestra di download anche se si tratta di un documento che, normalmente, il nostro browser andrebbe a visualizzare (ad esempio un file .doc, .xml, .txt, ecc.).

(L'articolo continua più sotto...)

Per ottenere questo risultato sarà sufficiente agire sugli header mediante un codice che usermo come "filtro" tra l'utente ed il file che vogliamo venga scaricato. Vediamo come:

<?php
// definisco una variabile con il percorso alla cartella
// in cui sono archiviati i file
$dir = "/root/www/download/";

// Recupero il nome del file dalla querystring
// e lo accodo al percorso della cartella del download
$file = $dir . $_GET['filename'];

// verifico che il file esista
if(!file)
{
  // se non esiste chiudo e stampo un errore
  die("Il file non esiste!");
}else{
  // Se il file esiste...
  // Imposto gli header della pagina per forzare il download del file
  header("Cache-Control: public");
  header("Content-Description: File Transfer");
  header("Content-Disposition: attachment; filename= " . $file);
  header("Content-Transfer-Encoding: binary");
  // Leggo il contenuto del file
  readfile($file);
}
?>
Salviamo questo codice come force-download.php ed utilizziamolo in questo modo:
force-download.php?filename=miofile.doc
Così facendo noterete che il file .doc del nostro esempio non verrà aperto nel browser il quale si limiterà ad aprire la finestra di dialogo per l'inizio del download.

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122