2012-02-09 21 views
8

Necesito ayuda con codeigniter, creo que file_exists es para la ruta del servidor, no para la url. pero mi carpeta de imágenes obtuvo el mismo nivel con la aplicación y la carpeta del sistema. encontrar nada en google, por favor ayuda

$url=base_url(); 
$filename="$url/upload/$id.jpg"; 
if (file_exists($filename)){ 
    echo "<li><img src=\"".$url."upload/$id.jpg\" width=\"40\" height=\"40\" /></li>"; 
}else{ 
    echo "<li><img src=\"http://www.mydomain.com/haha/image/noimg.png\" width=\"40\" height=\"40\" /></li>"; 
} 
+2

Una cosa, file_exists * is * para las rutas del servidor, no urls. Entonces, no usaría base_url(), usaría APPPATH – Ben

Respuesta

40

CodeIgniter siempre se está ejecutando en index.php, por lo que todas las rutas son relativas a partir de ahí. Puede utilizar cualquiera de los siguientes, asumiendo upload/ está al mismo nivel que index.php:

  • file_exists("upload/$id.jpg")

  • file_exists("./upload/$id.jpg")

  • file_exists(FCPATH."upload/$id.jpg")

FCPATH es una constante que Codeigniter establece que contiene el ab ruta del soluto a su index.php.

Como nota al margen, prefiero is_file() al verificar archivos, ya que file_exists() devuelve verdadero en los directorios. Además, es posible que desee ver si getimagesize() devuelve FALSE para asegurarse de tener una imagen.

+0

Esto no funciona siempre. – Linesofcode

+0

mis datos tienen la ruta completa de la imagen ... por ejemplo ... (http: //localhost/media/newsdata/20150923/Entertainment/Casspture.PNG) está funcionando cuando uso file_exists ($ thisfile), siempre devolvió false. .please –

+0

Utilice solo la ruta del servidor: 'file_exists ('media/newsdata/20150923/Entertainment/Casspture.PNG')' –

Cuestiones relacionadas