2015-11-24 4 views
-1

Я пытаюсь сделать что-то, что кажется простым: если пользователь хотел бы изменить изображение, он может, и если нет изображения, он может загрузить его. Сначала хочу определить, существует ли фотография. Если это так, это имя файла site_id.jpg. Переменная $ site_id соединяет правильную фотографию с правильным пользователем. Вот мой код:не может заставить file_exists работать

<?php 
$image_exists=""; 
$image_exists=file_exists('/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg'); 

if ($image_exists) { 
    echo $image_exists; 
    echo $site_id; 
?> 
<img src="/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg" /> 

эхо заявления там для устранения неполадок, а <img src> там, чтобы показать мне фотографию, снова только для устранения неполадок.

Итак, ЗДЕСЬ ПРОБЛЕМА: «file_exists» говорит, что файл существует (возвращает 1) даже через none существует. Я знаю, что никто не существует, потому что (a) в базе данных нет файла, и (б) я вместо стандартного значка «no image file выходит» (квадрат с вопросительным знаком в нем) вместо фотографии.

Если я создаю имя файла вместо '.site_id'.jpg, он возвращает false как следует. Если нет имени файла и только путь заканчивается на /160/, file_exists возвращает true, по-видимому, потому что существует каталог «160».

Почему file_exists говорит, что файл существует, когда он не является ?????

+0

http://php.net/manual/en/function.is-file.php - но желательно проверить $ site_id заранее – rjdown

+0

И выход html изображения должен быть «

+0

Спасибо, г-н Эскобар. Ваш ответ включен в ответ Ethan22 ниже, и это помогло. Другой вопрос: почему оператор' 'включает в себя' ', но не ссылку на файл в строке 3 (' $ image_exists = file_exists (...) ')? – HLandel

ответ

1

Ваш веб-сервер не сможет получить доступ к каталогу/home/tippc0. Он будет перемещаться от корня веб-сервера, который может быть папка public_html поэтому он ищет файл здесь

/home/tippc0/public_html/observations_images/160/

но пытается вывести файл из

/home/tippc0/public_html/home/tippc0/public_html/observations_images/160/

, которые он может» t найти так, что ваше изображение сломано, когда оно пытается отобразить его. Чтобы исправить это, убедитесь, что файл хранится в месте, к которому можно получить доступ с веб-сервера. Если public_html является корневой веб-сервер, сделать свой IMG тег, как это:

<img src="/observations_images/160/<?php echo $site_id; ?>.jpg" />

+0

Спасибо. Это помогло. Это позволило мне увидеть, что есть на самом деле файл изображения, хотя другой код, который у меня есть, не видит его. Мне нужно будет работать o n что другой код (который я не упоминал здесь и не является частью этого сообщения). – HLandel