文件夹删除错误 - 无法删除从zip中提取的文件夹

时间:2014-11-18 16:20:24

标签: php zip extract unlink delete-directory

我在解压缩服务器时删除目录时遇到问题。

我已将file.zip上传到服务器,然后创建了一个名为“ en ”的文件,将其权限 777 提取,然后将file.zip的内容解压缩到“ en ”,没关系。 问题是,我现在无法删除 en ”下的任何文件,但重命名似乎工作正常。我能够将“en”重命名为“delete_me”并能够重命名 它也是次级目录。

如果我尝试删除“delete_me”下的单个文件,例如index.html,我会得到

Command:    DELE index.html
Response:   550 index.html: Permission denied

1- FTP删除尝试:

当我尝试通过FTP删除“delete_me” - FileZilla时,它会在dir内部开始循环,并为每个文件显示此消息:

Response:   150 Opening BINARY mode data connection for MLSD
Response:   226 Transfer complete
Status: Directory listing successful
Command:    DELE index.html
Response:   550 index.html: Permission denied
Command:    CWD /httpdocs/_delete_me
Response:   250 CWD command successful

当我检查(所有者/团体)时,我发现它是(48/48),而我创建的其他目录或文件(10618/2524)。

2- cPanel删除尝试:

我尝试通过主机控制面板文件管理器进行访问,然后发现(用户/组)“delete_me”中的文件夹是( apache / apache ,而对于我的文件( / psacln

当我尝试从主机控制面板删除文件时,我得到了

Error: Unable to remove file /httpdocs/_delete_me// var/www/vhosts/<hostname>/httpdocs/_delete_me/tmp: filemng failed: rm: cannot remove `/var/www/vhosts/<hostname>/httpdocs/_delete_me/tmp/index.html': Permission denied
filemng: Error occured during /bin/rm command.

3- PHP删除:

最后,我尝试更改权限@chmod($dirPath, 0777);并删除rmdir($dirPath);unlink($file);,但没有结果。

与我的问题类似的唯一资源就是这里(Forum Question),但似乎没有回答(提供的答案链接不再可用)。

**那么,如何删除文件? **

1 个答案:

答案 0 :(得分:1)

你必须chmod该目录中的所有内容。

试试这个

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname));

$filemode = "0777"; // Set the permission

// Foreach item found set the permissions
foreach($iterator as $item) {
    chmod($item, $filemode);
}

如果您要执行rmdir($dirPath);请务必先从目录中删除所有文件,否则我相信它将无法删除该目录。

当然,一旦将权限设置为正确的权限,使用unlink($filepath);删除文件就可以了。