【发布时间】:2012-10-15 11:52:21
【问题描述】:
我正在使用 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 的错误/异常...
编辑:
我在$zip->close();之后添加了print $zip->getStatusString();
并打印:无法打开文件:权限被拒绝”。 这意味着什么?我确定每个目录都是可写的,因为我可以在其中创建带有 PHP 的新文件...
编辑 2:
if(is_writable(dirname($target)))
print 'target dir is writable...';
它打印出来,所以目录是可写的。感觉就像我在暮光之城...
【问题讨论】:
-
运行 PHP 的用户是否有权在相关目录中创建文件?
-
测试目录是否可写
-
是的,我在本地主机上运行“wamp”。它有权做任何事情..
-
使用 try catch 看看代码是否抛出异常
-
addFile 返回的是真还是假?
标签: php file zip ziparchive