如何使用 PHP 创建 zip 文件

2022-08-30 11:09:50

我正在尝试将文件一个文件夹保存到另一个文件夹.zip文件夹放在不同的目录中。我写了以下代码:

存档.php

<?php
    $zip = new ZipArchive();
    $zip->open('example.zip',  ZipArchive::CREATE);
    $srcDir = "/home/sam/uploads/";
    $files= scandir($srcDir);
    //var_dump($files);
    unset($files[0],$files[1]);
    foreach ($files as $file) {
        $zip->addFile("{$file}");    
    }
    $zip->close();
?>

但遗憾的是,我无法创建.zip文件夹。我错过了什么步骤吗?


答案 1
$zip = new ZipArchive();

$DelFilePath="first.zip";

if(file_exists($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath)) {

        unlink ($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath); 

}
if ($zip->open($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath, ZIPARCHIVE::CREATE) != TRUE) {
        die ("Could not open archive");
}
    $zip->addFile("file_path","file_name");

// close and save archive

$zip->close(); 

此处 TEST 是您的项目文件夹名称。

您可以根据需要定义路径。


答案 2

是的,我已经解决了我的问题。

在这里,我刚刚替换了代码

$zip->addFile("{$file}");

使用代码

$zip->addFromString(basename($file),  file_get_contents($file));

并完成我的工作。:)


推荐