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

Nik*_*dze 5 php zip file ziparchive

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

ZipArchive::close(): Renaming temporary file failed: Permission denied in /MyDirectory/myphpscript.php
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

<?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

?>
Run Code Online (Sandbox Code Playgroud)

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

Jaz*_*azZ 4

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

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

祝你好运 !