Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich eine ZIP-Datei und lade sie mit PHP ZipArchive herunter?

Wie erstelle ich eine ZIP-Datei und lade sie mit PHP ZipArchive herunter?

藏色散人
藏色散人Original
2019-02-28 13:19:594030Durchsuche

Während des Projektentwicklungsprozesses müssen wir möglicherweise die Funktion zum Erstellen von ZIP-Dateien und zum Bereitstellen von Downloads implementieren. Hier können wir also die ZipArchive-Klasse verwenden, um eine ZIP-Datei zu erstellen und diese dann herunterzuladen.

Wie erstelle ich eine ZIP-Datei und lade sie mit PHP ZipArchive herunter?

Lassen Sie mich Ihnen ein einfaches Beispiel geben. Manchmal müssen wir PHP-Code verwenden, um eine ZIP-Archivdatei zu erstellen, einige Fotos, Dokumente usw. zur ZIP-Datei hinzuzufügen und sie dann zum Download bereitzustellen. Hier erstellen wir eine sehr einfache Methode createZip(), die beim Erstellen von Zip-Archivdateien hilft. Mit dieser Methode können Sie einfach eine Reihe von Dateien, Dokumenten, Bildern und Pfaden übergeben.

Verwandte Empfehlungen: „[Zip-Dateibibliothek] 10 PHP-Zip-Dateibibliothek-Downloads

Unten habe ich ein sehr einfaches Beispiel für eine index.php-Datei geschrieben, Sie können es kopieren direkt herunter und führen Sie es zum Testen lokal aus.

Stellen Sie sicher, dass in der Datei index.php eine verfügbare Bilddatei vorhanden ist:

1)demo1.jpg
2)demo2.jpg

Das Codebeispiel lautet wie folgt:

 <?php


/* create a compressed zip file */
function createZip($files = array(), $destination = &#39;&#39;, $overwrite = false) {


    if(file_exists($destination) && !$overwrite) { return false; }


    $validFiles = [];
    if(is_array($files)) {
        foreach($files as $file) {
            if(file_exists($file)) {
                $validFiles[] = $file;
            }
        }
    }


    if(count($validFiles)) {
        $zip = new ZipArchive();
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
            return false;
        }


        foreach($validFiles as $file) {
            $zip->addFile($file,$file);
        }


        $zip->close();
        return file_exists($destination);
    }else{
        return false;
    }
}


$fileName = &#39;my-archive.zip&#39;;
$files_to_zip = [&#39;demo1.jpg&#39;, &#39;demo2.jpg&#39;];
$result = createZip($files_to_zip, $fileName);


header("Content-Disposition: attachment; filename=\"".$fileName."\"");
header("Content-Length: ".filesize($fileName));
readfile($fileName);

In diesem Artikel geht es um die Verwendung PHP ZipArchive zum Erstellen von Zip-Dateien. Und die Download-Methode wird eingeführt. Ich hoffe, sie wird Freunden in Not hilfreich sein!

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine ZIP-Datei und lade sie mit PHP ZipArchive herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn