我从这个链接http://www.gaijin.at/en/scrphpfilelist.php获得了php list目录脚本。
如何从directoy中删除单个文件?我尝试了unlink
,但它删除了该目录中的所有文件。这是我从链接获得的短代码!
while ($file = readdir ($hDir)) {
if ( ($file != '.') && ($file != '..') && (substr($file, 0, 1) != '.') &&
(strtolower($file) != strtolower(substr($DescFile, -(strlen($file))))) &&
(!IsFileExcluded($Directory.'/'.$file))
) {
array_push($FilesArray, array('FileName' => $file,
'IsDir' => is_dir($Directory.'/'.$file),
'FileSize' => filesize($Directory.'/'.$file),
'FileTime' => filemtime($Directory.'/'.$file)
));
}
}
$BaseDir = '../_cron/backup';
$Directory = $BaseDir;
foreach($FilesArray as $file) {
$FileLink = $Directory.'/'.$file['FileName'];
if ($OpenFileInNewTab) $LinkTarget = ' target="_blank"'; else $LinkTarget = '';
echo '<a href="'.$FileLink.'">'.$FileName.'</a>';
echo '<a href="'.unlink($FileLink).'"><img src="images/icons/delete.gif"></a></td>';
}
}
列表目录文件夹调用:backup。
在unlink($FileLink)
中,当我将链接更改为另一个文件夹到管理文件夹时?
答案 0 :(得分:28)
unlink('path_to_filename');
将一次删除一个文件。
如果您目录中的所有文件都已消失,则意味着您列出了所有文件并逐个删除。
嗯,你不能在同一页面中删除。你必须与其他页面。创建一个名为deletepage.php
的页面,其中包含要删除的脚本并以'file'作为参数链接到该页面。
foreach($FilesArray as $file)
{
$FileLink = $Directory.'/'.$file['FileName'];
if($OpenFileInNewTab) $LinkTarget = ' target="_blank"';
else $LinkTarget = '';
echo '<a href="'.$FileLink.'">'.$FileName.'</a>';
echo '<a href="deletepage.php?file='.$fileName.'"><img src="images/icons/delete.gif"></a></td>';
}
在deletepage.php上
//and also consider to check if the file exists as with the other guy suggested.
$filename = $_GET['file']; //get the filename
unlink('DIRNAME'.DIRECTORY_SEPARATOR.$filename); //delete it
header('location: backto prev'); //redirect back to the other page
如果你不想导航,那么使用ajax来优雅。
答案 1 :(得分:10)
http://php.net/manual/en/function.unlink.php
取消链接可以安全地删除单个文件;只需确保您要删除的文件实际上是文件而不是目录('。'或'..')
if (is_file($filepath))
{
unlink($filepath);
}
答案 2 :(得分:4)
只需你可以使用它
$sql="select * from tbl_publication where id='5'";
$result=mysql_query($sql);
$res=mysql_fetch_array($result);
//Getting File Name From DB
$pdfname = $res1['pdfname'];
//pdf is directory where file exist
unlink("pdf/".$pdfname);
答案 3 :(得分:3)
答案 4 :(得分:3)
您下载的脚本列出了指定文件夹的内容。您可能将unlink - 调用放在列出文件的while
- 循环之一中。
编辑 - 现在您发布了代码:
echo '<a href="'.unlink($FileLink).'"><img src="images/icons/delete.gif"></a></td>';
执行此操作会在每次写入行时调用unlink
- 函数,删除文件。
您必须编写包含删除功能的脚本的链接,并传递一些参数,告诉您的脚本要删除的内容。
示例:
<a href="/path/to/script.php?delete='. $FileLink .'">delete</a>
你不应该将路径传递给这个脚本的文件,只是删除它,因为恶意可能会用它来删除所有内容或做其他邪恶的事情。
答案 5 :(得分:1)
如果您想删除单个文件,则必须如您所知,使用unlink()
功能。
该函数将删除您将其作为参数传递的内容:因此,您可以将路径传递给它必须删除的文件。
例如,您将使用以下内容:
unlink('/path/to/dir/filename');
答案 6 :(得分:0)
<?php
if(isset($_GET['delete'])){
$delurl=$_GET['delete'];
unlink($delurl);
}
?>
<?php
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "<a href=\"$entry\">$entry</a> | <a href=\"?delete=$entry\">Delete</a><br>";
}
}
closedir($handle);
}
?>
这是它
答案 7 :(得分:0)
=