2012-02-09 7 views
8

codeigniterの助けが必要です、私はfile_existsがURLではなくサーバーパス用だと思います。私のイメージフォルダはアプリケーションとシステムフォルダと同じレベルになっています。 Googleで何を見つけていない、

$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

file_exists *は、サーバーパスではなく、URLではありません。 base_url()を使用しない場合は、APPPATH – Ben

答えて

40

を助けてくださいCodeIgniterでは、常にindex.php上で実行されているので、すべてのパスは、そこから相対的なものです。あなたはupload/index.phpと同じレベルであると仮定すると、次のいずれかを使用することができます。

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

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

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

FCPATHは、一定でありますコードを含むコードセットセットあなたのindex.phpへの溶質経路

補足として、file_exists()はディレクトリでtrueを返すので、ファイルのチェック時にはis_file()を使用することをお勧めします。また、getimagesize()FALSEを返すかどうかを確認して、画像があることを確認することもできます。

+0

を使用します。これは常に機能しません。 – Linesofcode

+0

私のデータにはフルパス..eg(http://localhost/media/newsdata/20150923/Entertainment/Casspture.PNG)というイメージがあります。file_exists($ thisfile)を使用するとworngですが、常にfalseを返します。 .please –

+0

サーバパスのみを使用してください: 'file_exists( 'media/newsdata/20150923/Entertainment/Casspture.PNG')' –

関連する問題