我正在使用ZipArchive:
function zip_dir($source,$target){ $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($source,\FilesystemIterator::SKIP_DOTS),\RecursiveIteratorIterator::SELF_FIRST); $zip = new \ZipArchive(); if($zip->open($target,\ZipArchive::CREATE) !== true) exit('cannot create zip'); foreach($iterator as $file){ $zip->addFile($file); print $file . '<br>'; } $zip->close(); return $target; } zip_dir(__DIR__ . '/test/',__DIR__ . '/testarchive.zip');
我可以看到文件列表,但最后我找不到应该创建的zip文件.我从ZipArchive得到没有错误/异常……
编辑:
我添加了print $zip-> getStatusString();在$zip-> close()之后;
并打印:无法打开文件:权限被拒绝“.
那是什么意思?我知道每个目录都是可写的,bc我可以在里面用PHP创建新文件……
编辑2:
if(is_writable(dirname($target))) print 'target dir is writable...';
它打印出来,所以dir是可写的.感觉就像我在暮光之城……