用php动态创建zip

时间:2010-02-23 07:52:19

标签: php

使用php创建动态zip文件的最简单方法是什么?

例如,

我在服务器上有这些文件,

Root -> Folder 1 -> file1.wav
Root -> Folder 2 -> file2.jpg 

我想创建一个包含这2个文件的zip文件,并允许用户下载它。

任何帮助?

提前谢谢

2 个答案:

答案 0 :(得分:3)

参见ZipArchive类;它有你需要的东西。

http://www.php.net/manual/en/class.ziparchive.php

PHP.Net的例子:

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/path/to/index.txt', 'newname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

压缩后,您可以输出mime-type标头并输出文件:

header('Content-type: application/zip');
readfile('test.zip');

答案 1 :(得分:0)

这是在php中制作zip的工作示例

$zip = new ZipArchive();
$zip_name = time().".zip"; // Zip name
$zip->open($zip_name,  ZipArchive::CREATE);
foreach ($files as $file) {
  echo $path = "uploadpdf/".$file;
  if(file_exists($path)){
  $zip->addFromString(basename($path),  file_get_contents($path));  
  }
  else{
   echo"file does not exist";
  }
}
$zip->close();