删除服务器文件

10 php file delete-file

我正在寻找一种使用PHP从服务器删除文件的方法.基本上我以这种方式在页面上列出了我的文件:

<ul>
    <li><a href="delete_file.php?file=uploads/file_01.jpg">Delete File 01</a></li>
    <li><a href="delete_file.php?file=uploads/file_02.jpg">Delete File 02</a></li>
    <li><a href="delete_file.php?file=uploads/file_03.jpg">Delete File 03</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何让我的delete_file.php文件工作.我认为它需要是这样的:

<?php 
    $path="uploads/file_01.jpg";
    if(unlink($path)) echo "File Deleted"; 
?>
Run Code Online (Sandbox Code Playgroud)

...但我不知道如何让$ path更改为我点击删除的文件.

Pat*_*ick 27

虽然你必须非常小心地让用户能够删除文件,但我会给你足够的绳索让自己挂起

定义将包含将被删除的任何文件的基目录

$base_directory = '/home/myuser/';
Run Code Online (Sandbox Code Playgroud)

然后删除该文件

if(unlink($base_directory.$_GET['file']))
    echo "File Deleted.";
Run Code Online (Sandbox Code Playgroud)


Bra*_*tie 5

<?php
  $file_to_delete = $_GET['file'];
  if (is_file($file_to_delete)){
    echo (unlink($file_to_delete) ? "File Deleted" : "Problem deleting file";

  }
?>
Run Code Online (Sandbox Code Playgroud)

我不会撒谎,除了检查它是否是文件之外,不知道更好的方法来消毒$ _GET ['file'].如果这不是一种有效的方式,专家请加入.(也许请遵循本SO主题中的指导原则?)

  • 用[`basename()`](http://php.net/basename)清理它以防止人输入类似`../../ someotherfile`的内容. (3认同)