PHP come creare un file zip e scaricarlo

di Lorenzo Neri

PHP come creare un file zip e scaricarlo: se stai leggendo questa pagina è perché ti stai chiedendo come sia possibile creare un file ZIP e scaricarlo. In circa 3 minuti dedicati alla lettura di questo articolo dovrebbero essere sufficienti!

PHP ci permette di fare tante cose, non per nulla gli ho dedicato un’intera categoria sul blog, fra queste, c’è senza dubbio quella di creare file in formato ZIP nativamente: ma prima, è giusto dirti chi sono per parlarti di ciò.

Il mio nome è Lorenzo Neri e sono un informatico: questo blog è nato con l’idea di aiutare persone come te a padroneggiare l’arte del nuovo millennio, l’informatica.

Per poterlo fare, ho cominciato a raccogliere tutte le soluzioni che ho applicato ai problemi incontrati lungo la mia carriera: quale miglior modo se non scrivere articoli come questi per poter aiutare persone come te?

Incominciamo.

Come creare un file ZIP con PHP: ZipArchive vieni a noi

Come ti dicevo prima, la creazione dei file ZIP in PHP può avvenire nativamente grazie a ZipArchive, una classe PHP pensata apposta per questo processo.

Ma per poterlo capire appieno, facciamo un esempio diretto.

La prima cosa che dovremmo (e uso il condizionale) fare, è verificare che il file da convertire in file ZIP esista!

Una volta fatta questa verifica, possiamo procedere a creare l’archivio ZIP con il file, o comunque i contenuti che è di nostro interesse mettere nell’archivio ZIP stesso.

Per intenderci:

$archivio_zip = new ZipArchive();
if(file_exists("./percorso/del/file/nome_del_file.estensione")) {
    
    if ($archivio_zip->open($_SERVER['DOCUMENT_ROOT']."nome_del_tuo_archivio.zip", ZIPARCHIVE::CREATE) != TRUE) {
        die ("Non riesco a creare l'archivio ZIP");
    }
    $archivio_zip->addFile("./percorso/del/file/nome_del_file.estensione","nome_del_file.estensione");
}
$archivio_zip->close(); 

Ora che abbiamo creato l’archivio, che abbiamo capito come poter mettere al suo interno dei file, cerchiamo di capire come poterlo scaricare.

Come scaricare un file ZIP una volta creato

Una volta che abbiamo creato il file ZIP arriviamo al punto di scaricarlo.

Per scaricare un file in PHP, un archivio di tipo ZIP nella fattispecie, è necessario definire degli header, oltre che indicare il file che si desidera far scaricare al client.

E anche qui, facciamo un esempio a corredo del precedente:

header("Content-type: application/zip"); 
header("Content-Disposition: attachment; filename=./percorso/del/file/archivio_da_scaricare.zip");
header("Content-length: " . filesize("./percorso/del/file/archivio_da_scaricare.zip"));
header("Pragma: no-cache"); 
header("Expires: 0"); 
readfile("./percorso/del/file/archivio_da_scaricare.zip");

Ed ecco quindi come creare un file zip e scaricarlo in PHP 🙂

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più