-2

コントローラーで次のコードを使用しています。

//function to protect images from being accessed directly.
function getImage($img_id){


      //code to authenticate user goes here then...
$url = $this->data['base_url'].'system/application/images/c/thumbs/';

$filepath = $url.$img_id;

    header("Content-type: image/jpeg");
  if(file_exists($filepath)){
    echo "we are here";
        $img_handle = imagecreatefromjpeg($filepath) or die("");
    echo $img_handle;
        ImageJpeg($img_handle);
    }



    }

画像を取得する私の見解では、次のコードを使用しました。

<img src='<?php echo base_url(); ?>index.php/Controller/getImage/obama.jpg' width="100px"> 

コントローラーに入っていますが、画像が表示されていません。オバマ ファイルは正しいディレクトリにあります。理由がわかりません。

4

2 に答える 2

1

あなたの問題は、テキストをブラウザに出力してから画像を出力していることです。ブラウザは画像をレンダリングしようとしますが、画像は破損します。

header("Content-type: image/jpeg");
if(file_exists($filepath)){
    echo "we are here";
    $img_handle = imagecreatefromjpeg($filepath) or die("");
    echo $img_handle;
    ImageJpeg($img_handle);
}

また、やりたい場合は、「ねえ、これは jpeg 画像です」と言ってecho送信することはできません。header

于 2012-07-12T22:05:26.433 に答える
0

$this->data['base_url'].'system/application/images/c/thumbs/obama.jpg 経由で画像にアクセスできることは確かですが、ブラウザでアクセスしてみましたよね?

また、画像をレンダリングする前にテキストを印刷しないでください。画像が破損する可能性があります。

それでも問題が解決しない場合は、エラー ページのスクリーンショットとその内容をお知らせください。

于 2012-07-13T05:38:01.373 に答える