0

これは私のモデルです:

次のエラーが表示されます

 Fatal error: Call to undefined method CI_Image_lib::data() in C:\xampp\htdocs\adcc\application\models\media_model.php on line 58

私の質問: data() を使用して、保存されたサムネイルから ['full_path'] を取得できないのはなぜですか (アップロードの場合と同様)。

これを行うより良い方法はありますか?ありがとう!

public function set_media() {

        $config1 = array(
            'allowed_types' => 'jpg|jpeg|gif|png',
            'upload_path' => $this->gallery_path . '/images',
            'max_size' => 2048
        );

        $this->load->library('upload');
        $this->upload->initialize($config1);
        $this->upload->do_upload();

        $image_data = $this->upload->data();

        $config2 = array(
            'source_image' => $image_data['full_path'],
            'new_image' => $this->gallery_path . '/thumbs',
            'maintain_ratio' => true,
            'width' => 150,
            'height' => 100
        );

        $this->load->library('image_lib', $config2);
        $this->image_lib->resize();
        $image_data2 = $this->image_lib->data();

        $this->load->helper('url');

        $id = url_title($this->input->post('title'), 'dash', TRUE);

        $data = array(
            'id' => $id,
            'name' => $this->input->post('name'),
            'link' => $this->input->post('link'),
            'year' => $this->input->post('year'),
            'actors' => $this->input->post('actors'),
            'image' => $image_data['full_path'],
            'thumb' => $image_data2['full_path']
        );

        return $this->mongo_db->insert('media', $data);
    }
4

3 に答える 3

1

['full_path']$this->image_libはアップロード ライブラリのインスタンスではなく、(エラー メッセージに示されているように) そのメソッドがないため、イメージ ライブラリの data() から取得できません。

これで、image_lib は元のイメージと同じファイル名でサイズ変更された新しいイメージを作成し、confing で指定したディレクトリに保存しますnew_image。結果のフルパスは$full_dst_pathimage_libのプロパティに保存され、フォルダ$dest_folder$dest_imageファイル名のみがあります。

したがって、これらを使用するには、次の行をドロップするだけです。

$image_data2 = $this->image_lib->data(); // delete this line

保存するときは、次のように記述します。

$data = array(
// ...
'thumb' => $this->image_lib->full_dst_path,
// ...
),

Upload または Image_lib ライブラリが返す可能性のあるエラーを処理することも良い考えです。

于 2013-04-21T16:44:28.633 に答える
0

サイズを変更する前に 、 image_lib構成配列の部分を初期化する必要もあります https://stackoverflow.com/a/21187402/2897770

image_libをロードした後にこれを追加するだけ です $this->image_lib->initialize($config2);

于 2014-01-17T13:43:05.893 に答える