2017-01-02 89 views
0

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

   <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

传递一个绝对路径'file_exists' –

+0

什么叫绝对路径意味着 – user2148116

+0

像'PROJECT_ROOT。 “/ plans/$ RID”('/ path/to/plans/1234') –

回答

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> 
+0

我都添加了绝对路径,但只有在指定文件扩展名时才有效(例如if(file_exists('__DIR__。'plans /'.$ RID。'。jpg' )))。问题是我不想指定扩展,因为文件类型不同。我只想要名称为$ RID的文件,无论其扩展名为 – user2148116

+0

@ user2148116我添加了一些关于扩展名 –

+0

的信息,谢谢!但如果它不在这些扩展名中?这个想法是什么扩展是 – user2148116

0

如果计划在这里你有用于检查文件,那么就没有必要把在file_exists计划沿着您的文件名

<td> 
<?php 

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

</td> 

否则,你可以做这样你的PHP文件目录,

<?php 

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

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

</td> 
-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>