Форумы портала PHP.SU » » Работа с файловой системой и файлами » is_file и file_exist не работают. getimagesize работал, но грузил сервер

Страниц (1): [1]
 

1. temalover - 24 Октября, 2016 - 20:28:24 - перейти к сообщению
Помогите как быть. Сайт на codeigniter.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = ''.$asset_url.'img/products/'.$product->id.'/'.$product->img_alias.'-2.jpg';
  4. if (is_file($filename)) {
  5. echo "<img class='js-desc-img desc-img' src='".$filename."' data-src='".$filename."'>";
  6. } else {
  7. echo "";
  8. }
  9. ?>


при этом, если во второе echo вставить $filename, то выводится путь, по которому можно открыть картинку.

Гуглил все, что можно, не нашел ответа((

Да, кстати, раньше использовал getimagesize и он работал, но чем больше картинок на странице, тем дольше ответ сервера.
2. OrmaJever - 24 Октября, 2016 - 21:42:33 - перейти к сообщению
тот путь который вы вводили это виртуальный путь, по которому браузер может открыть картинку, а для php функций надо системный путь, желательно с корня ОС, например
CODE (htmlphp):
скопировать код в буфер обмена
  1. /home/www/mysite.ru/static/img.jpg

есть хорошая константа __DIR__
3. temalover - 24 Октября, 2016 - 22:41:42 - перейти к сообщению
Спасибо за наводку. Сработал следующий код
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = $_SERVER["DOCUMENT_ROOT"] . '/' . 'assets/img/products/'.$product->id.'/'.$product->img_alias.'-2.jpg';
  4.         if (is_file($filename)) {
  5.                 echo "<img class='js-desc-img desc-img' src='".$asset_url."img/products/".$product->id."/".$product->img_alias."-2.jpg' data-src='".$asset_url."img/products/".$product->id."/".$product->img_alias."-2.jpg'>";
  6.         } else {
  7.                 echo "";
  8. }
  9. ?>
  10.  

на серваке, но не на локалке.. ну сильно не мешает, поэтому так и оставляю
4. OrmaJever - 25 Октября, 2016 - 12:10:23 - перейти к сообщению
не стоит полагаться на $_SERVER["DOCUMENT_ROOT"], как вы уже поняли он может быть разный на разных серверах, на хостингах в большинстве случаев он указывает не на вашу папку. Лучше использовать константу __DIR__
5. temalover - 25 Октября, 2016 - 13:04:09 - перейти к сообщению
OrmaJever пишет:
не стоит полагаться на $_SERVER["DOCUMENT_ROOT"], как вы уже поняли он может быть разный на разных серверах, на хостингах в большинстве случаев он указывает не на вашу папку. Лучше использовать константу __DIR__

Так константа __DIR__ ведет в папку, где лежит скрипт, а изображения в другой папке

 

Powered by ExBB FM 1.0 RC1