2012-03-29 2 views
0

私は特定のディレクトリにたくさんのファイルを持っています。特定のPHPページでは、各項目を個別にダウンロードするためのリンクが付いた特定のディレクトリの内容をリストしています。今度は、そのディレクトリのすべてのコンテンツをZI​​Pするリンクを表示する必要があります。そのため、すべてのコンテンツをシングルZIPファイルとしてダウンロードできます。ディレクトリ内のコンテンツをPHPを使ってZIPファイルとしてダウンロードする方法は?

+0

ディレクトリにコンテンツのzipファイルを作成しますか? – Araw

+0

はい、そうです。 –

+0

あなたはこれをチェックすることができます:http://davidwalsh.name/create-zip-php またはあなたはちょっと同じ解決策である他の答えを見てみることができます。 – Araw

答えて

1

使用ZipArchiveを試してみて、RecursiveDirectoryIterator

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

明らかに、ディレクトリ名とイベントのZIPファイル名をスクリプトに投稿することができますが、それはあなたに開始点を与えます

+0

ユーザーがダウンロードを完了したときにZIPファイルを削除するオプションはありますか? –

+0

@SuryaSはいあります... [リンク解除](http://php.net/manual/en/function.unlink.php) – ManseUK

+0

ありがとうボス!!! –

0

次にブラウザにzipファイルを送信

何か

$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(); 

のようにディレクトリ内のすべてのファイルを取得するためビュンファイルに対して、この

$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(); 
関連する問題