2014-12-03 33 views
3

我試圖驗證目錄中是否存在文件。當我使用此代碼它的工作原理 - 圖像顯示:PHP - file_exists不起作用,即使文件存在目錄中

<?php 

    $imgId=0; 
    $filename='../uploadedimages/project-'.$item->id.'-'.$imgId; 

    echo "<img src='".$filename."' ></img>"; 

?> 

當我用file_exists功能相同的代碼,它不工作:

<?php 

    $imgId=0; 
    $filename='../uploadedimages/project-'.$item->id.'-'.$imgId; 

    if (file_exists($filename)) {        
    echo "<img src='".$filename."' ></img>";     
    } 

?> 

我的問題很簡單:WTF?

+1

成爲文檔是不一樣的服務器的DocumentRoot ...所以'file_exists ()'使用腳本所在的文件夾作爲參考目錄。加載''將其從Web服務器的根目錄引用。 – RichardBernards 2014-12-03 14:52:16

+4

'file_exists'需要文件系統路徑。 – mudasobwa 2014-12-03 14:52:43

+1

旁註:''你不需要那個。 – 2014-12-03 14:53:17

回答

2

您可以使用:$_SERVER['DOCUMENT_ROOT']來知道你在哪裏。

再嘗試這樣的事:

$filename=$_SERVER['DOCUMENT_ROOT'].'uploadedimages/project-'.$item->id.'-'.$imgId; 

但首先,你需要確保路徑存在。

0

Linux服務器上,嘗試使用file_exists函數之前更改文件訪問權限設置爲755

搭配chmod 755 FILENAME.EXT

相關問題