我试图列出目录中的所有文件并删除文件,如果单击' delete '链接,但是,它告诉我该文件不存在,显示我这些错误消息:
Notice: Undefined index: dir in C:'xampp'htdocs'Task2PHP'final'deletefile.php on line 4
Warning: unlink(adam.png): No such file or directory in C:'xampp'htdocs'Task2PHP'final'deletefile.php on line 7
files.php(代码块):
@$selected_path = $_POST['myFiles'];
$dir = $selected_path;
echo "<br>Current files in: " . $dir . " <br /><br />";
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file <a href=deletefile.php?file=$file>DELETE</a><br />";
}
}
closedir($handle);
}
deletefile.php
<?php
session_start();
$username = $_SESSION['username'];
$dir = $_SESSION['dir'];
$file= basename($_GET['file']);//added
unlink("$file");
?>
unlink()
函数将相对于deletefile.php
的位置查找adam.png
。如果图像位于目录中,则需要这样做:
session_start();
$username = $_SESSION['username'];
$dir = $_SESSION['dir'];
$file= basename($_GET['file']);//added
unlink('folder/container/'.$file); // or maybe you want unlink($dir.$file);
或者,您可以通过将files.php
中的echo
语句更改为:
deletefile.php
echo "$file <a href='"deletefile.php?file=$file&dir=$dir'">DELETE</a><br />";
你可以通过$_GET['dir']
访问deletefile.php
内部,所以你的代码应该是这样的:
$dir = $_GET['dir'];
$file = basename($_GET['file']);
unlink($dir.$file);
因为unlink("$file");
$file只是文件名,所以它应该是绝对路径或适当的相对路径。检查路径使用…