无法使用php从文件系统中删除文件

时间:2014-02-22 09:49:06

标签: php filesystems delete-file unlink

每当用户单击“是”以删除表单提交时,我无法使用php从文件夹中删除文件。 即使在使用unlink()功能后,文件仍然存在于文件夹中:

<form method='post'>
<input type='submit' name='del' value='Yes'>
</form>
<?php
if(isset($_POST['del']))
    {

     $filename=$userid.".jpg";
     unlink('upload-cover/uploads/$userid/$filename');
     echo "Your image has been deleted successfully!!";
    }

?>

3 个答案:

答案 0 :(得分:2)

您必须将字符串传递给双引号中的unlink函数。这是因为PHP将按字面解释单引号中的字符串,因此不包括您的变量。试试这个:

unlink("upload-cover/uploads/$userid/$filename");

或者:

unlink("upload-cover/uploads/".$userid."/".$filename);

我认为第二个选项更具可读性,可以防止您遇到的错误!

这是理解PHP字符串和路径的一个很好的答案: What is the difference between single-quoted and double-quoted strings in PHP?

答案 1 :(得分:1)

如果使用单引号,则生成的文件名将不正确。

另外,请确保您拥有正确的权限

尝试

 unlink("upload-cover/uploads/$userid/$filename");

答案 2 :(得分:0)

通过查看代码,它似乎是变量查找问题

单引号内的

变量是php引擎

的字符串
unlink('upload-cover/uploads/$userid/$filename');

其中双引号内的变量是变量到php引擎

unlink("upload-cover/uploads/$userid/$filename");