2016-05-17 21 views
0

我試圖壓縮某些文件夾使用此功能:添加ZIP不會做任何

public function generate_zip($directory,$name_of_the_folder){ 
     $rootPath = realpath($directory); 
     $zip = new ZipArchive(); 
     $zip->open('path/to/my/zip/compressed.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE); 
     $zip->addFile($rootPath,$name_of_the_folder); 
     $zip->close(); 
    } 

字面上什麼都不做。我已經檢查了權限,他們似乎是正確的。

回答

1

使用ZipArchive,您不能添加使用ZipArchive::addFile()空目錄。您必須使用ZipArchive::addEmptyDir()。 對於你的情況,我想你想要的是ZipArchive::addGlob()

0

根據文檔,函數'addFile'需要兩個文件名:第一個是本地文件(要添加到zip)的路徑,第二個(可選)參數是您希望文件的方式出現在郵編內。

您有一個變量'$ name_of_the_folder'。這是否包含正確的價值?

Php.net文檔:http://php.net/manual/en/ziparchive.addfile.php

+0

是的我嘗試過,沒有這個值和不同的名稱,以確保這不是問題。 – prgrm

+0

真實路徑之後'$ rootPath'的價值是什麼? –

+0

其實和$目錄一樣。我總是使用realpath來確保我使用的是正確的目錄。我試圖用addFile中的$目錄作爲路徑,但也沒有運氣。 – prgrm