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