1

Debian サーバーに apache をインストールし、php を追加しました。しかし、.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でパーミッションを設定できます。たとえば、Web サーバーがそのディレクトリに書き込めるようにするには、次のようにします。

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

あなたの $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 に答える