删除服务器文件

时间:2011-02-10 00:37:52

标签: 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>

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

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

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

3 个答案:

答案 0 :(得分:23)

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

定义一个基本目录,其中包含任何将被删除的文件

$base_directory = '/home/myuser/';

然后删除文件

if(unlink($base_directory.$_GET['file']))
    echo "File Deleted.";

答案 1 :(得分:5)

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

  }
?>

我不会撒谎,除了检查是否是文件之外,不知道更好的方法来清理$ _GET ['file']。如果这不是一种有效的方式,专家请加入。(也许请遵循指南present in this SO topic?)

答案 2 :(得分:0)

有时您可能希望动态创建路径。

例如,我在不同的地方使用CMS,因此不应使用固定的定义。

我的项目结构:

-myProject
| -admin
| --app
| ---控制器
|-上传

'admin/app/controllers/'

这是正在运行的php文件的路径。

我的'upload/'中的php文件

但是将文件上传到$path = str_replace('admin/app/controllers/', '', $path); echo $path; //'/home/myProject/public_html/upload/myFile'

我们需要删除不必要的目录以获取正确的路径。上传文件夹中的文件是不必要的,因此我们不需要“ admin / app / controllers /”。因此,我们将删除此部分。

if (file_exists($path)){
    if(unlink($path)){
       echo "File deleted";
    }
}else{
     echo "File is not exists";
}

现在我们有了正确的路径,我们可以删除文件了。

export class PersonDetailsComponent implements OnInit {
  @Input() personInput: Person;
  get person(){
    return personInput || {};
  }