Вы передаете $this->upload->file_name
неизвестное значение. Библиотека GD
не смогла найти формат изображения и расширение строки / объекта, которые вы передаете в $photo
для проверки.
Вы должны использовать $this->upload->data()
для захвата загруженных значений изображения, как показано ниже.
$config = [
'upload_path' => $this->upload_path, // make sure you are adding tailing `/` in your upload path, else you should add `/` before joing the images below
'allowed_types' => $this->image_types,
'max_size' => $this->allowed_file_size,
'max_width' => $this->Settings->iwidth,
'max_height' => $this->Settings->iheight,
'overwrite' => false,
'encrypt_name' => true,
'max_filename' => 25
];
$this->load->library('upload', $config); // make sure you are loading the `upload` library, else it will load
$this->upload->initialize($config);
if($this->upload->do_upload('product_image')){
$uploaded_data = $this->upload->data(); // here you should collect the uploaded data
$data['image'] = $uploaded_data['file_name'];
$config = [
'image_library' => 'gd2',
'source_image' => $this->upload_path . $uploaded_data['file_name'],
'new_image' => $this->thumbs_path . $uploaded_data['file_name'],
'maintain_ratio' => true,
'width' => $this->Settings->twidth,
'height' => $this->Settings->theight,
'quality' => '100%',
];
$this->load->library('image_lib', $config);
$this->image_lib->initialize($config);
if ($this->image_lib->resize()){
return true;
}else{
return $this->image_lib->display_errors();
}
}else{
$this->session->set_flashdata('error', $this->upload->display_errors());
redirect("products/edit/" . $id);
}