11

私はしばらくこれに取り組んできました。これは実際に一度は機能しましたが、二度と機能しませんでした。zip ファイルを作成しないだけです。ファイルは存在します。

$zip = new ZipArchive();
$filename = "./test" . time() .".zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {      
    exit("cannot open <$filename>\n");
}

$thisdir = "$_SERVER[DOCUMENT_ROOT]/zip";
$zip->addFile($thisdir . "/trash-icon.png", "/gabage.png");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();

次のようなものを追加すると

$zip->addFromString("testfilephp.txt", "#1 This is a test string added as testfilephp.txt.\n"); 

txtファイルを含むzipを作成します..しかし、既存のファイルのタイプには対応していません。

4

3 に答える 3

2

このZipArchive::addFile()メソッドは、ファイルへのパスを最初のパラメーターとして受け入れます。


ここでは、次を使用しています:

$zip->addFile("/trash-icon.png", "/gabage.png");

/trash-icon.pngつまり、ファイルをアーカイブに追加しようとしています。


このファイルが存在しますか?

そのファイルのパスの先頭に絶対パスであることを示す があることに 注意して/ください。相対パスを使用するには、
おそらくそれを削除する必要がありますか?/

于 2011-03-24T17:23:03.840 に答える
1

同様の問題があり、zip アーカイブに追加するファイルに関連していました。

ファイルを zip アーカイブに追加する前に、ファイルが存在するかどうかを確認することをお勧めします。

$thisdir = "$_SERVER[DOCUMENT_ROOT]/zip";
if (file_exists($thisdir . "/trash-icon.png")) {
    $zip->addFile($thisdir . "/trash-icon.png", "/gabage.png");
}
于 2015-11-25T12:12:08.903 に答える