0

フォルダーを圧縮しようとするために使用しているPHPコードがいくつかあります。このフォルダーには、2 つのサブフォルダーといくつかの個別のファイルがあります。

コードは次のとおりです。

<?php

    $src = $_POST['srcin'];
    $dst = $_POST['dstin'];

    $zip = new ZipArchive;
    $zip->open($dst, ZipArchive::CREATE);
    if (false !== ($dir = opendir($src)))
         {
             while (false !== ($file = readdir($dir)))
             {
                 if ($file != '.' && $file != '..')
                 {
    $ans = DIRECTORY_SEPARATOR;
                           $zip->addFile($src.DIRECTORY_SEPARATOR.$file);
                 }
             }
         }
         else
         {
             die('Can\'t read dir');
         }
    $zip->close();

    echo json_encode('Folder Compressed');

?> 

入力値は次のとおりです。 -

srcin = "TestFolder" dstin = "TestFolder.zip".

何が起こっているのかというと、zip ファイルを取得しています。ただし、サブフォルダーはファイルとして作成されています。

フォルダーを ZIP する方法についてこのフォーラムを検索して上記のコードを取得しましたが、サブフォルダーが適切に ZIP されていないことについては何も言及されていません。

どんな助けでも大歓迎です。

ありがとう

マーティン

4

1 に答える 1

1

addEmptyDirファイルを追加する前に、ディレクトリを作成する必要があります。

ディレクトリを再帰的にアーカイブする方法の例(トップコメントを参照)を次に示します

于 2013-09-20T07:30:01.950 に答える