2009-11-04 114 views

回答

2

令人驚訝的unix的解壓縮工作!

exec(unzip -n -q zip-downloaded-by-cron.zip -d photos); 
+1

解壓縮6.00有zip64擴展名。舊版本不。 – jmanning2k 2011-09-14 14:27:04

0

我知道的幾個選項。

如果您的PHP在Windows上運行,您可以使用COM接口DotNetZip

$zipInput = "c:\\temp\\zip-downloaded-by-cron.zip"; 
$zip = new COM("Ionic.Zip.ZipFile"); 
$zip->Initialize($zipInput); 
$dirForExtract= "c:\\temp\\extract"; 
# optional password 
$zip->Password = "AES-Encryption-Is-Secure"; 
$zip->ExtractAll($dirForExtract); 
$zip->Dispose(); 

對於DotNetZip,在閱讀zip文件時,必要時會自動使用ZIP64。

或者,您可以調用DotNetZip提供的命令行工具。 除了Windows + .NET之外,這具有在Linux + Mono上工作的優勢。 該工具是unzip.exe,您可以調用(cmd)unzip.exe downloaded-zip.zip。它會自動處理zip64的東西。 unzip.exe上有多個選項可指定要提取的位置,要提取的文件等。

+0

Linux no mono,是否可以使用DotNetZip unzip.exe? – 2009-11-05 06:55:21

+0

不,如果你在Linux上,你需要mono來運行DotNetZip。 – Cheeso 2009-11-05 11:04:05

0

顯然Perl的IO::Compress::Zip模塊支持Zip64。如果你足夠安裝它,你可以通過shell_exec()來調用一個小的Perl腳本。

+0

由於服務器問題無法安裝perl php模塊。所以我可以通過passthru()或cmd()調用腳本我需要充氣zip64(IO :: Uncompress :: Unzip?)我有perl,v5.8.8爲i686-linux構建任何人都知道一個簡單的perl腳本,我可以呼叫? – 2009-11-05 08:04:54