Php Codeigniter-上传图像,生成缩略图,在数据库中保存两个目录

Php Codeigniter-上传图像,生成缩略图,在数据库中保存两个目录,php,codeigniter,Php,Codeigniter,这是我的模型: 我得到以下错误 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() {

这是我的模型:

我得到以下错误

 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);
    }

您无法从图像库上的data()获取['full_path'],因为
$this->image_lib
不是上载库的实例,并且根本没有该方法(如错误消息所述)

使用现在的配置,图像库将在与原始图像相同的文件名下创建新的调整大小的图像,并将其保存在您在confing的
new\u image
中指定的目录下。生成的完整路径将保存到image_lib的
$full_dst_path
属性中,并且文件夹和文件名也只有
$dest_folder
$dest_image

因此,要使用这些,只需删除以下行:

$image_data2 = $this->image_lib->data(); // delete this line
保存时只需写下:

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

处理上载或图像库可能返回的错误也是一个好主意。

在调整大小之前,您还需要初始化图像库的部件

只需在加载图像库
$this->image\u lib->initialize($config2)

为什么要生成缩略图。上传的项目图片是否已经正确?你想要小一点的照片吗?检查此-->