1

我已经在 debian 服务器上安装了 apache 并添加了 php.ini。但是,如果我尝试创建一个 .zip 文件,它就不起作用。没有错误消息,但没有创建 .zip 文件。

代码:

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
$zip->addFile('Banner1.png', 'Banner1.png');
$zip->close();
?>
4

2 回答 2

2

最有可能的是,运行 php 的用户(www-data默认情况下在 debian 上)没有对该目录的写入权限。检查各种功能的结果,如下所示:

<?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 上,您可以使用chownchmod配置权限。例如,要允许网络服务器写入该目录,请尝试

sudo chown www-data /path/to/directory/with/php/file
sudo chmod u+rwx /path/to/directory/with/php/file
于 2013-07-11T16:28:29.313 回答
0

Sûre 你的 $res 好吗?

if ($res === TRUE) {
    echo 'ok';
    $zip->addFile('Banner1.png', 'Banner1.png');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
于 2013-07-11T16:15:50.880 回答