-2

マイ プロファイル モデル ファイル:

function putProfileImage($user, $image)
{


    $record = array('user' => $user, 'profileimage' => $image);
    if ($this->exists($user))
    {
        $this->db->where('user', $user)->update('profiles', $record);
    }
    else
    {
        $this->db->where('user', $user)->insert('profiles', $record);
    }
}

function getProfileImage($user)
{

    $config = array(
            'allowed_types' => 'jpg|jpeg|gif|png',
            'height' => 200,
            'length' => 150
    );


    $this->db->select('*')->from('profiles')->where('user', $user);
    $query = $this->db->get();
    $row = $query->row();
    return $row->profileimage; //Trying to get property of non-object error


}

そのgetProfileimageは、私が最も問題を抱えているdo_upload関数に似ています

4

3 に答える 3

1

これらのサイトを見てください

次に、以下の擬似コードに従います(profileimageがデータベースにBLOBフィールドとして格納されていると仮定します)

モデルファイル:

function putProfileImage($user, $image)
{
    // you may need to store the image type / mine type
    $record = array('user' => $user, 'profileimage' => $image);
    if ($this->exists($user))
    {
        $this->db->update('profiles', $record)->where('user', $user);
    }
    else
    {
        $this->db->insert('profiles', $record);
    }
}

function getProfileImage($user)
{
    $this->db->select('*')->from('profiles')->where('user', $user);
    $query = $this->db->get();
    if ($query->num_rows() > 0){
        $row = $query->row();
        return $row->profileimage; //Trying to get property of non-object error
    }

    return Null;
}

コントローラー-profile.php

function Upload()
{
    // see - Creating the Upload Form
    // @ - http://codeigniter.com/user_guide/libraries/file_uploading.html
}

function doUpload ()
{
    //see do_upload() and save with module above
    // @ - http://codeigniter.com/user_guide/libraries/file_uploading.html
}

function displayImage()
    {
        //Retrieve image id from the URI
        $imageid = $this->uri->segment(3);
        //Initialize the images model
        $this->load->model("image_model");
        //Call the model's getImage function passing the image id
        $image = $this->image_model->getProfileImage($imageid);
        if (!is_null($image)) {
            //need to know the mine type 
           // header('Content-Type: image/png');

            header ('Content-Type: image/jpg');
            imagejpeg(imagecreatefromstring($image), null,100);
        }
        else{
         // load a default profile image
        }
    }

    function viewProfile(){
        //load profile detail view for users and display image
        // 18 = change to image id
        echo '<img src="<?=base_url()?>profile/displayImage/18" alt="profile"/>';

    }
于 2012-10-26T04:33:56.407 に答える
0

* Trying to get property of non-object *エラーは、クエリの結果が得られなかった可能性が最も高いことを意味します。つまり、プロファイルテーブルにuser=$userの行がないことを意味します。

デバッグを容易にするために、 $query = $this->db->get();の直後にこのコマンドを使用できます。

echo $this->db->last_query(); die();

*$this->db->last_query();* は最後に実行されたクエリの sql を取得し、die()はプログラムを終了します。

于 2012-10-26T02:40:23.770 に答える
0

正しい画像の場所フォルダーに保存することで、この問題を解決できました

于 2012-11-14T01:30:49.587 に答える