检查文件是否存在并提供php的链接

时间:2017-01-02 06:55:29

标签: php html file-exists

我想检查目录是否包含特定文件(任何类型,图像,pdf等)。如果它包含该文件,我想为此文件提供下载链接,否则请打印"not exist"。不幸的是,即使文件存在于目录中,我的代码也始终打印not exist。这是我的代码:

                <td>  <?php

if (file_exists('plans/'.$RID)) {
  echo"<a href='plans/$RID'>Plan</a>";
} else {
    echo "not exists";
}
?>  </td>

这是另一个我也试过但但没有工作的代码:

<td>  <?php
    $plan= 'plans/'.$RID;
    if (file_exists($plan)) {
      echo"<a href='plans/$RID'>Plan</a>";
    } else {
        echo "not exists";
    }
    ?>  </td>

3 个答案:

答案 0 :(得分:1)

提供绝对路径作为函数的参数:

如果您的脚本路径是计划目录的父目录,则参数可以是__DIR__ . '/plans',例如。

编辑:要捕获包含某些扩展名的文件,您可以创建一个包含允许扩展名的数组。

<td><?php
$extensionsAllowed = ['jpg','pdf','png']; //complete it
foreach ($extensionsAllowed as $extension){    
    if (file_exists( __DIR__ . 'plans/'.$RID.'.'.$extension)) {
      echo '<a href="plans/'.$RID.'.'.$extension.'" download>Plan</a>';
    } else {
      echo "not exists";
    }
?>  </td>

答案 1 :(得分:0)

如果计划是您拥有用于检查文件的php文件的目录,那么就不需要将文件放在file_exists中与文件名一起

<td>  
<?php

if (file_exists($RID)) {
      echo"<a href='plans/$RID'>Plan</a>";
    } else {
        echo "not exists";
    }
?>

</td>

否则你可以这样做,

<?php

$Path = $_SERVER['DOCUMENT_ROOT'].'/plans/'.$RID;

if (file_exists($Path)) {
      echo"<a href='plans/$RID'>Plan</a>";
    } else {
        echo "not exists";
    }
?>

</td>

答案 2 :(得分:-1)

改变
<td>  
<?php

if (file_exists('plans/'.$RID)) {
  echo"<a href='plans/$RID'>Plan</a>";
} else {
    echo "not exists";
}
?>  
</td>

<td>  
<?php

if (!file_exists('plans/'.$RID)) {
   mkdir('plans/'.$RID, 0777, true);
   echo"<a href='plans/$RID'>Plan</a>";  
}
?>  
</td>