0

私はCodeIgniterを学んでいます。画像を含むディレクトリimgがあります(パス/img/)。CIビューからアクセスして、このコードで存在するかどうかを確認しようとしています:

    $av = '../../../img/content/users/'.$userID.'.jpg';
    if(file_exists($av)) {
        $avatar = $av;
    } else {
    $avatar = 'img/content/users/none.jpg';
    }

面白いのは、反響<img src="'.$av.'">作品。私は何をすべきか?

4

4 に答える 4

3

CI は常に で実行されるindex.phpため、パスは常にそこからの相対パスになります。

index.php/imgがルートで同じレベルにあると仮定して、これを試してください。

$av = 'img/content/users/'.$userID.'.jpg';
if(is_file($av)) { // or better yet, make sure it's really an image
    $avatar = $av;
} else {
    $avatar = 'img/content/users/none.jpg';
}

面白いのは反響<img src="'.$av.'">作品

これは、ブラウザがサーバーとは別の場所を見ているためです。を使用するのではなく、 や などの../../relative/paths関数を使用することをお勧めします。URL に追加のセグメントがある場合、相対パスは壊れます。base_url()img()

于 2012-06-19T12:19:46.820 に答える
2

URL とファイル パスは同じではありません。現在の URL から../../../img/content/users、ビュー ファイルが置かれているハード ディスク上のファイル パスとは完全に異なる可能性があります。

于 2012-06-19T12:21:12.120 に答える
1

次の手順を使用します

1) 構成ファイル (/application/config/) にカスタム構成ファイル名 site_config.php を作成し、次のコードを貼り付けます。

<?php

$config['base_url'] = "http://".$_SERVER['SERVER_NAME'] . str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

if(!defined('DOCUMENT_ROOT')) define('DOCUMENT_ROOT',str_replace('system/application/config','',substr(__FILE__, 0, strrpos(__FILE__, '/'))));

$config['base_path']    =   constant("DOCUMENT_ROOT");
?>

2) autoload.php を編集して、site_config.php (/application/config/autoload.php) を自動ロードします。

$autoload['config'] = array('site_config');

3)次に、次のコードを使用して画像を表示します

$image_path = $this->config->item('base_path').'folder_name/'.$userID.'.jpg';
if(file_exists($image_path)) {
  $avatar = $this->config->item('base_url').'folder_name/'.$userID.'.jpg';
} else {
  $avatar = $this->config->item('base_url').'default_folder_name/profile.jpg';
}
echo '<img src="'.$avatar.'" />';

私はそれがあなたを助けると思います

于 2012-06-19T12:44:35.657 に答える
0

これを試して:

$av = './img/content/users/'.$userID.'.jpg';
于 2012-06-19T12:20:37.053 に答える