使用PHP创建zip文件

3

我正在创建一个特定文件夹的 zip 文件,我使用的是 Joomla 1.5 版本,在其中有一个表单提交组件,我想要使用提交的文档创建一个 zip 文件。在我的本地主机上,它可以创建 zip 文件,但是当我测试远程服务器时,它会将扩展名替换为某种数字,例如我们正在创建一个名为 test.zip 的文件,但是它创建成了 test.zip.a12345 和 test.zip.b12345 ...

我用来创建 zip 文件的代码:

$files = array(
    'files/file1.jpg',
    'files/file2.jpg',
    'files/file3.jpg'
);


$zip = new ZipArchive();
$zip_name = "zipfile.zip";
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){
    $error .= "* Sorry ZIP creation failed at this time";
}

foreach($files as $file){
    $zip->addFile($file);
}

$zip->close();

本地服务器的输出文件名是zipfile.zip,而在线服务器的输出文件名分别是:zipfile.zip.a11236和zipfile.zip.b11236。


你在FTP中检查了文件名,还是你怎么知道文件名的?因为你的代码没有显示出你如何揭示文件名。 - Raptor
这段代码只是一个片段..我使用了类似这样的文件夹路径 $filepath = JPATH_BASE.'\images\foldername\' - Khushal Chouhan
1个回答

0

但它正在本地服务器上创建。 - Khushal Chouhan
是的,我知道。但是你在一个已经存在的文件上使用了ZipArchive :: CREATE。这是不可能的,因此ZipArchive会编造一个新名称。只需通过创建不存在的文件来测试此功能。 - KIKO Software
问题在于它没有创建zip文件,而是创建了另一个对我没有用处的扩展名的文件。 - Khushal Chouhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接