2013-09-04 5 views
0

file_exists не работает! Но когда в браузере указывается URL ($ img в коде), отображается изображение. Я знаю, что file_exists() принимает только путь, но жёсткого диска я мог понять, помогите пожалуйста ..file_exists() не работает, но когда URL-адрес изображения указан в браузере, отображается изображение

include_once("../inc/inc_constants.php"); 

include_once("database/db.php"); 

include_once("includes/global.php"); 

ini_set('max_execution_time',300); 

     $sql="select plan_image_name from mp_new_project_images 
        where project_code in 
        (select project_code from mp_new_project 
        where project_status='Active') "; 

      $sql_result=mysql_query($sql) or die(mysql_error()); 



     while($sqlrow=mysql_fetch_array($sql_result)) 
     { 
      //HOME is "http://ip address/" 

    $img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." "; 

    if(file_exists($img)) 
    { 

    $dest =HOME."images/properties/thumbs_400/compress_50/".$sqlrow['plan_image_name']." "; 
    $dest1=HOME."images/properties/thumbs_400/compress_20/".$sqlrow['plan_image_name']." "; 
    $dest2=HOME."images/properties/thumbs_400/compress_10/".$sqlrow['plan_image_name']." "; 

    $size = getimagesize($img); 

    switch($size['mime']) { 
     case 'image/jpeg': 
      $im=imagecreatefromjpeg($img); 
      imagejpeg($im,$dest,50); 
      imagejpeg($im,$dest1,20); 
      imagejpeg($im,$dest2,10); 
     break; 
     case 'image/png': 
      $im = imagecreatefrompng($img); 
      imagepng($im,$dest,50); 
      imagepng($im,$dest1,20); 
      imagepng($im,$dest2,10); 
     break; 
     case 'image/gif': 
      $im = imagecreatefromgif($img); 
      imagegif($im,$dest,50); 
      imagegif($im,$dest1,20); 
      imagegif($im,$dest2,10); 
     break; 
     default: 
      return false; 
     break; 
     } 
    } 

} 
+0

Что такое ценность 'HOME'? – MisterBla

+0

HOME is http: // ip address/ – phplearner

+1

Если HOME является URL-адресом, то это не сработает ... file_exists() работает с файловой системой серверов –

ответ

0

Имя файла должно быть Path to the file or directory не IP-адрес

'HOME' constant should be /var/www/html not ('http://url') for example 

$img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." "; 

if(file_exists($img)) { 

} 
0

в функции file_exisits вместо домашнего использования физического пути. физический путь что-то вроде этого "/ вар/WWW/public_html /"

использование phpinfo() функции, чтобы знать физический путь

ИЛИ

использование

dirname(__FILE__) . DIRECTORY_SEPARATOR 

ПРАВИЛЬНО, чтобы получить физический путь динамически.

0

Этот код у вас есть:

//HOME is "http://ip address/" 

$img = HOME."images/properties/thumbs_400/".$sqlrow['plan_image_name']." "; 

if(file_exists($img)) 
{ 

не будет работать. Функция file_exists() ожидает путь к локальному каталогу. Вы можете использовать fopen() для удаленного пути.

$handle = fopen("http://www.example.com/", "r"); 

if (!$handle) 
    { 
    //no file 
    } 
else 
    { 
    // file exists 
    } 

http://php.net/manual/en/function.fopen.php

Я считаю, что он работает с IP-адресами, но будьте осторожны, так как IP-адреса довольно часто делилась.

+0

Я использовал метод ур-fopen, который работает, благодарю u fa, но файлы не сжимаются в папках назначения. В коде отсутствует ошибка. Я думаю, что есть проблема с путём ($ dest, $ dest1, $ dest2). Помогите оценить! – phplearner

+0

Можете ли вы расширить/объяснить проблему с файлами, которые не сжимаются? Что вы ожидаете? – James