2017-01-02 38 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> 
相關問題