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

时间:2017-03-11 19:26:41

标签: php file zip ziparchive

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

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。我正在运行Mac,并且压缩目录的权限为read & write,适用于所有用户。可能是什么问题?

2 个答案:

答案 0 :(得分:3)

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

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

祝你好运!

答案 1 :(得分:0)

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