每当用户单击“是”以删除表单提交时,我无法使用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!!";
}
?>
答案 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");