2014-11-23 50 views
1

这是我第一次使用PHP来制作ZIP压缩文件。但是,即使没有错误输出,我也没有收到任何zip文件。我做了echo $zip->close,它给了。PHP ZipArchive问题

有人可以帮助我吗?

/* Create zip folder */ 
$zip = new ZipArchive(); 
$zipCreate = $zip->open("newarchive.zip", ZipArchive::CREATE); 

if($zipCreate !== TRUE) { 
    die("Zip folder creation failed"); 
} 

$zip->addFile("test.txt", "test.txt"); 
$zip->addFile("helllo.txt", "helllo.txt"); 
$zip->close(); 
+1

你有没有检查过test.txt和helllo.txt是否在同一个文件夹中,或者甚至存在? – iCezz 2014-11-23 11:28:00

+0

是的,它们在php文件夹中的文件夹的子文件夹中。 – user2604185 2014-11-23 11:30:05

+0

我想我发现了这个问题。我没有把第一个参数中的初始文件夹的完整路径。 – user2604185 2014-11-23 11:33:20

回答

1

也许试试这个来代替:

<?php 

/* Create zip folder */ 
$zip = new ZipArchive(); 
$zipCreate = $zip->open("newarchive.zip", ZipArchive::CREATE); 

if($zipCreate !== TRUE) { 
    die("Zip folder creation failed"); 
} 

$directory = getcwd() . '/'; 

$files = array('test.txt', 'helllo.txt'); 

foreach($files as $file) { 
    $zip->addFile($directory . $file, basename($file)); 
} 

$zip->close(); 

addFile()方法的第一个参数,请提供您的文件名的完整路径,而在第二个提供文件的目录/位置。在档案中,这应该做的伎俩。

+0

我特别喜欢数组的想法。 – user2604185 2014-11-23 11:41:30

+0

当然。对不起。 – user2604185 2014-11-23 11:42:57

+0

这比我的回答更好。做得好。 – iCezz 2014-11-23 11:48:43