簡體   English   中英

如何使用PHP將目錄中的內容作為ZIP文件下載?

[英]How to make the contents in a directory to be downloaded as a ZIP file using PHP?

我在特定目錄中有很多文件。 在某個PHP頁面中,我列出了特定目錄的內容,並帶有分別下載每個項目的鏈接。 現在,我需要顯示一個鏈接,該鏈接將對該目錄的所有內容進行ZIP壓縮,以便任何訪問者都可以將所有內容下載為單個ZIP文件。

使用ZipArchive壓縮文件,使用RecursiveDirectoryIterator獲取目錄中的所有文件

就像是

$zipfilename = <zip filename>;
$zip = new ZipArchive();
$zip->open($zipfilename, ZipArchive::CREATE);
// add all files in directory to zip
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator('path/to/files/')) as $filename) {
    $zip->addFile($filename);
}
$zip->close();

然后將zip發送到瀏覽器

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename="'. $zipfilename .'"');
header('Content-Length: ' . filesize($zipfilename));
readfile($zipfilename);

顯然,您可以發布目錄名稱,並在腳本中添加zip文件的名稱,但這為您提供了一個起點

嘗試這個

$files = array('file1.txt', 'file2.txt', 'file3.txt');
$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM