删除PHP中的单个文件
我需要删除一个文件。根据我目前的情况,我最终删除了所有文件 如何删除单个文件删除PHP中的单个文件,php,Php,我需要删除一个文件。根据我目前的情况,我最终删除了所有文件 如何删除单个文件 <?php function delete($descarga){ $link = $descarga; unlink($link); } $path="ficheros/"; $directorio=dir($path); while ($archivo = $directorio->read()) { if($archivo === '.' || $archivo === '
<?php
function delete($descarga){
$link = $descarga;
unlink($link);
}
$path="ficheros/";
$directorio=dir($path);
while ($archivo = $directorio->read())
{
if($archivo === '.' || $archivo === '..') {continue;}
$descarga = $path."".$archivo;
echo "<a href=".$descarga.">".$archivo."</a>"."<a title='Delete' href='#' onclick=".delete($descarga)."><span class='glyphicon glyphicon-remove'></span></a>"."<br>";
}
$directorio->close();
?>
起初不清楚,但我知道您提供的代码有什么问题 首先,从目录中获取所有文件。 然后尝试创建指向非文件夹文件的删除链接。 但问题是,每次创建链接时,都在代码中调用
delete()
。因此,每次执行此代码时,所有文件都会立即删除,即使页面上显示了链接。只要试着加载页面,不要点击任何东西,你就会看到
因此,这里的问题是,您混淆/混合了服务器端代码和客户端代码。一旦呈现页面,您就无法访问您编写的PHP代码。这意味着您不能从onclick Javascript事件访问delete
函数,因为PHP是服务器端代码,Javascript是客户端代码
您需要的是2个PHP文件。显示文件及其删除按钮的按钮,如下所示:
/display_files.php
<?php
$path="ficheros/";
$directorio=dir($path);
while ($archivo = $directorio->read())
{
if($archivo === '.' || $archivo === '..') {continue;}
$descarga = $path."".$archivo;
echo "<a href=\"".$descarga."\">".$archivo."</a>"."<a title=\"Delete\" href=\"/path/to/delete/file.php?borrar_archivo=".$descarga."\"><span class=\"glyphicon glyphicon-remove\"></span></a><br>";
}
$directorio->close();
?>
/display_files.php
另一个作为参数接收要删除的文件,如下所示(尚未对其进行测试,但应接近您所需):
/path/to/delete/file.php
当然,这种方法无论如何都是不安全的,因为你允许任何人调用URL来删除他们喜欢的任何内容,但它满足了你的需要
如果有些地方不够清楚,请告诉我。起初不清楚,但我知道您提供的代码有什么问题 首先,从目录中获取所有文件。 然后尝试创建指向非文件夹文件的删除链接。 但问题是,每次创建链接时,都在代码中调用
delete()
。因此,每次执行此代码时,所有文件都会立即删除,即使页面上显示了链接。只要试着加载页面,不要点击任何东西,你就会看到
因此,这里的问题是,您混淆/混合了服务器端代码和客户端代码。一旦呈现页面,您就无法访问您编写的PHP代码。这意味着您不能从onclick Javascript事件访问delete
函数,因为PHP是服务器端代码,Javascript是客户端代码
您需要的是2个PHP文件。显示文件及其删除按钮的按钮,如下所示:
/display_files.php
<?php
$path="ficheros/";
$directorio=dir($path);
while ($archivo = $directorio->read())
{
if($archivo === '.' || $archivo === '..') {continue;}
$descarga = $path."".$archivo;
echo "<a href=\"".$descarga."\">".$archivo."</a>"."<a title=\"Delete\" href=\"/path/to/delete/file.php?borrar_archivo=".$descarga."\"><span class=\"glyphicon glyphicon-remove\"></span></a><br>";
}
$directorio->close();
?>
/display_files.php
另一个作为参数接收要删除的文件,如下所示(尚未对其进行测试,但应接近您所需):
/path/to/delete/file.php
当然,这种方法无论如何都是不安全的,因为你允许任何人调用URL来删除他们喜欢的任何内容,但它满足了你的需要
如果有不清楚的地方,请告诉我。您的问题与您发布的代码完全不清楚。请说得更清楚些。我想用UNLINK@MuntashirAkonI方法从图标中删除一个文件。我认为glyphicon与您的问题无关,所以我会从问题描述中编辑它。还有,据我所知,当你试图删除一个文件时,所有的文件都会被删除,是吗?是的,是的。你能帮我吗@Cavpollo您的问题与您发布的代码完全不清楚。请说得更清楚些。我想用UNLINK@MuntashirAkonI方法从图标中删除一个文件。我认为glyphicon与您的问题无关,所以我会从问题描述中编辑它。还有,据我所知,当你试图删除一个文件时,所有的文件都会被删除,是吗?是的,是的。你能帮我吗@卡夫波洛