从服务器中删除图片

3

我使用了unlink方法来删除这张图片。

这张图片仅位于该文件夹中。

$filename = "warning-icon.jpg";
  if (file_exists($filename)) {
    unlink($filename);
    echo 'File '.$filename.' has been deleted';
  } else {
    echo 'Could not delete '.$filename.', file does not exist';
  }

但是图片并没有被删除。

我有一个服务器名叫做web04,这是我的默认服务器名称(客户端服务器名称)。我无法从此服务器的文件夹中删除图像。我在本地主机上检查了相同的代码,在这里图像可以被删除。但是在web04服务器上,图像无法被删除。

请帮帮我。先谢谢了。


2
你得到了哪个回声? - Syscall
1
你必须检查unlink()的返回值才能知道文件是否真正被删除。请参见:http://php.net/manual/zh/function.unlink.php Linux中无法删除通常与权限有关。 - KIKO Software
在回显中显示“文件名已删除”。但是当我查看那个文件夹时,该图像尚未被删除。 - Muthusamy
@KIKOSoftware 我已经检查过了,文件仍未被删除。 - Muthusamy
@phpdeveloper:你检查了什么?是unlink()的返回值还是权限?如果是,结果如何? - KIKO Software
3个回答

4

定义根目录:

$root_directory = '/home/myuser/htdocs';

现在删除该文件:
if(unlink($root_directory.$_GET['file']))
    echo "File Deleted.";


 else
        echo "Couldn't delete the File.";

它已经在我的本地服务器上被删除了,但在客户端服务器上并未被删除。 - Muthusamy
什么是客户端服务器?您想从客户端机器上删除吗? - Jai Shree Ganesh
我有一个名为web04的服务器,它是我的默认服务器名称(客户端服务器名称)。我无法从此服务器中的文件夹中删除图像。我已经在我的本地主机系统中检查了相同的代码,这里的图像可以被删除。但在web04服务器上,图像无法被删除。请给予建议。提前致谢。 - Muthusamy

2

当 echo 显示“文件名已删除”,但文件仍然存在于目录中时,可能有其他原因如下:

  • 您正在查看另一个目录
  • 您通过浏览器检查文件,但浏览器有时会缓存它
  • 该文件被一些代理程序/事件重复创建

看起来 unlink 真的删除了文件,因为您进行了“file_exists”检查。 也许可以尝试另一种检查?

$filename = "warning-icon.jpg";
if (file_exists($filename)) {
  unlink($filename);
  echo 'File '.$filename.' has been deleted';
  if (file_exists($filename)) {
    echo "still exists!!!";
  }
} else {
  echo 'Could not delete '.$filename.', file does not exist';
}

  1. 我正在查找我保存此文件的相同目录。
  2. 我已清除缓存,但问题仍然存在。
  3. 不,这个文件夹里只有两个文件,一个是Index.php(顶部给出的代码),另一个是图像文件(warning-icon.jpg)。我已经检查了所有可能的情况,但图像并没有被删除。请提供解决方案。谢谢。
- Muthusamy

0

我向我的Web托管团队提交了一个工单,他们给了我删除图像的权限。现在该图像已被删除。

感谢所有帮助我解决这个问题的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接