Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: is_file и file_exist не работают. getimagesize работал, но грузил сервер

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
temalover
Отправлено: 24 Октября, 2016 - 20:28:24
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2016  


Помог: 0 раз(а)




Помогите как быть. Сайт на 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 и он работал, но чем больше картинок на странице, тем дольше ответ сервера.
 
 Top
OrmaJever Модератор
Отправлено: 24 Октября, 2016 - 21:42:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




тот путь который вы вводили это виртуальный путь, по которому браузер может открыть картинку, а для php функций надо системный путь, желательно с корня ОС, например
CODE (htmlphp):
скопировать код в буфер обмена
  1. /home/www/mysite.ru/static/img.jpg

есть хорошая константа __DIR__


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
temalover
Отправлено: 24 Октября, 2016 - 22:41:42
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2016  


Помог: 0 раз(а)




Спасибо за наводку. Сработал следующий код
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.  

на серваке, но не на локалке.. ну сильно не мешает, поэтому так и оставляю

(Отредактировано автором: 24 Октября, 2016 - 22:43:55)

 
 Top
OrmaJever Модератор
Отправлено: 25 Октября, 2016 - 12:10:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




не стоит полагаться на $_SERVER["DOCUMENT_ROOT"], как вы уже поняли он может быть разный на разных серверах, на хостингах в большинстве случаев он указывает не на вашу папку. Лучше использовать константу __DIR__


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
temalover
Отправлено: 25 Октября, 2016 - 13:04:09
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2016  


Помог: 0 раз(а)




OrmaJever пишет:
не стоит полагаться на $_SERVER["DOCUMENT_ROOT"], как вы уже поняли он может быть разный на разных серверах, на хостингах в большинстве случаев он указывает не на вашу папку. Лучше использовать константу __DIR__

Так константа __DIR__ ведет в папку, где лежит скрипт, а изображения в другой папке
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB