php中的zip文件夹结构不正确

时间:2012-06-07 12:56:03

标签: php yii

我在php中使用ZipArchive创建zip文件。代码 -

$path = Yii::getPathOfAlias('webroot').'/quickshopimages/productimage/';
$zip =new ZipArchive();
$zip->open('test.zip', ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
$iterator=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST);
foreach($iterator as $file) 
{
  if($file->isDir())   
  {
   echo strtoupper($file->getRealpath()), PHP_EOL.'<br/>';$file .'/');
   $zip->addEmptyDir(str_replace(strtoupper($file->getRealpath()) . '/', '', 
   $file . '/'));
  }
 else
 {
  $zip->addFile($file);
 }
}
$zip->close();

但问题是,当我创建zip时,其文件夹结构设置为

  

C:\ Program Files   (86)\的EasyPHP-5.3.5.0 \ WWW \ quickshop \树干\ quickshopimages \ productimage \雄性\球衣\民族\ 1

我的主根目录来自“productimage \ male \ shirts \ Ethnic \ 1”。那么,怎样才能从“productimage”中以root身份启动zip文件夹呢?

提前致谢并抱歉英语

2 个答案:

答案 0 :(得分:0)

请参阅下面的答案,您的问题似乎来自您对$ zip-&gt; addFile($ file);的使用,没有第二个参数。

php creating zips without path to files inside the zip

答案 1 :(得分:0)

Yii有一个拉链扩展名。 yii zip ext.

$zip = Yii::app()->zip;
$zip->makeZip('./','./toto.zip'); // make an ZIP archive 
$zip->extractZip('./toto.zip', './1/'); // extract Zip arc.