2014-12-03 2 views
3

Im пытается проверить, существует ли файл в каталоге. Когда я использую этот код он работает - отображается изображение: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 не то же самое, как сервер DocumentRoot ... Так 'file_exists() 'использует папку, в которой сценарий находится в качестве справочного каталога. Загрузка '' берет на это ссылку из корня вашего веб-сервера. – RichardBernards

+4

'file_exists' ожидает путь к файловой системе. – mudasobwa

+1

Sidenote: '' вам это не нужно. –

ответ

2

Вы можете использовать: $_SERVER['DOCUMENT_ROOT'], чтобы знать, где вы находитесь.

А потом попробовать что-то вроде этого:

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

Но сначала нужно убедиться, что путь существует.

0

на Linux сервере, попробуйте изменить разрешение доступа к файлам на 755 перед использованием функции file_exists

CHMOD 755 имяфайла.рсш

Смежные вопросы