PHP ZipArchive 不创建 zip 存档。在代码中修复什么?

PHP ZipArchive doesn't create a zip archive. What to fix in the code?

我在 files/srt/username/filename.srt 目录中有一个 .srt 文件。我需要能够在浏览器中下载它,但要实现这一点,我必须先压缩文件。 我在网上找到了以下代码:

function download_zip() {
    if (isset($_POST['download_srt'])) {
        $zip = new ZipArchive();
        $zip->open("files/srt/".$_SESSION['user_name']."/".$_POST['download_srt'].".zip", ZipArchive::CREATE);
        // output: files/srt/username/filename.srt.zip

        $zip->addFile($_POST['download_srt']);
        // output of $_POST['download_srt']: filename.srt

        $zip->close();
    }
}

按下提交按钮并发送 $_POST 数据时调用代码。 该功能有效,但没有在与原始 srt 文件相同的目录中创建 ZIP 文件。没有出现错误消息。

您应该提供要添加的文件的正确路径:

$zip->addFile("files/srt/".$_SESSION['user_name']."/".$_POST['download_srt']);