我在debian服务器上安装了apache并添加了php。但如果我尝试创建一个.zip文件,它就不起作用。没有错误消息,但是没有创建.zip文件。
代码:
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
$zip->addFile('Banner1.png', 'Banner1.png');
$zip->close();
?>
最有可能的是,php运行的用户(在debian上,默认为www-data
)没有对该目录的写入权限。检查各种功能的结果,如下所示:
<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
if (!$res){
echo 'Error while creating zip file: ' . $zip->getStatusString();
exit();
}
if (! $zip->addFile('Banner1.png', 'Banner1.png')) {
echo 'Error while adding Banner1: ' . $zip->getStatusString();
exit();
}
if (! $zip->close()) {
echo 'Error while closing: ' . $zip->getStatusString();
exit();
}
在具有默认配置的debian上,可以使用chown和chmod配置权限。例如,要允许Web服务器写入该目录,请尝试
sudo chown www-data /path/to/directory/with/php/file
sudo chmod u+rwx /path/to/directory/with/php/file
Sûre你的$res不错吗?
if ($res === TRUE) {
echo 'ok';
$zip->addFile('Banner1.png', 'Banner1.png');
$zip->close();
} else {
echo 'failed, code:' . $res;
}