【问题标题】:PHP - How can i check that a file is in a specific directory?PHP - 如何检查文件是否在特定目录中?
【发布时间】:2014-03-16 11:32:37
【问题描述】:

我有一个给定的路径,比如

directory1/directory2/directory3/file.txt

我想检查此路径是否在目录 2 中。但是仅使用 strpos 搜索是不够的,因为路径可能是

directory1/directory2/../directory4/file.txt

如何检查给定路径是否位于给定目录中?

【问题讨论】:

  • 首先使用is_dirfile_exists检查路径是否存在,如果存在则继续您的流程
  • 我不想知道路径directory2/directory2/../directory4/file.txt 是否存在。我想知道该文件是否位于directory2。因为使用..,用户可以离开我的上传目录并查看一些关键文件。

标签: php file path directory


【解决方案1】:

使用文件的绝对路径。

例子:

$filename  = "/var/www/projecname/files/file.txt"
if(file_exists($filename))
{
 ....
}

【讨论】:

    【解决方案2】:

    此检查目录是否存在,否则会创建一个

    if (!file_exists("directory2/directory2/../directory4")) 
     mkdir("directory2/directory2/../directory4", 0777);
    
    
    if (file_exists("directory2/directory2/../directory4")) 
     if(file_exists("directory2/directory2/../directory4/file.txt"))
       echo "file exist"
     else
        echo "file not found";
    else
      echo "directory not found";
    

    【讨论】:

    • 我不想知道路径directory2/directory2/../directory4/file.txt 是否存在。我想知道该文件是否位于directory2。因为使用..,用户可以离开我的上传目录并查看一些关键文件。
    猜你喜欢
    • 2012-06-28
    • 2022-11-21
    • 2011-04-29
    • 1970-01-01
    • 2019-08-28
    • 2014-01-11
    • 2014-02-18
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多