ZipArchive::close():重命名临时文件失败:权限被拒绝

ZipArchive::close(): Renaming temporary file failed: Permission denied

当我尝试删除压缩目录中的文件时出现这个奇怪的错误:

ZipArchive::close(): Renaming temporary file failed: Permission denied in /MyDirectory/myphpscript.php

这是我的代码:

<?php

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    $compressedDirectoryPath = '/Users/Shared/SampleZip.zip';

    $zip = new ZipArchive();

    if ($zip->open($compressedDirectoryPath) === true) { 
        if ($zip->deleteName('SampleZip/samplefile.txt') === true) {
            echo 'File deleted';
        } 
    }

    $zip->close(); // the error is pointing here

?>

echo 执行成功并打印 File deleted。我是 运行 a Mac,压缩目录的权限是 read & write 所有用户。可能是什么问题?

正如错误告诉你的那样,这是一个权限问题。确保 apache 用户 (www-data) 对 zip 存档所在的目录具有写入权限。

之后,您的代码将按预期工作。

祝你好运!

当您在服务器本身上打开输出文件并在尝试再次 运行 脚本时保持打开状态时,也会发生这种情况。