Я пытаюсь создать эскиз профиля для пользователя, когда он загружает изображение профиля. Я смотрю с некоторой помощью здесь, как недавно положил руку на Codeiniter, и я тоже новичок в php.Не удалось создать эскиз (изменить размер) изображение профиля в Codeigniter
В настоящее время это вставляет изображение профиля в папку «temp», но не изменяет его размер. Возможно, я ошибаюсь. Должен ли я создать новую функцию для миниатюры, или я могу включить ее вместе с тем, который у меня есть?
У меня нет проблем с добавлением нового изображения профиля. автоматически заменяя изображение и автоматически удаляя изображение профиля при добавлении нового. Просто изменение размера (уменьшенное изображение) изображения.
Вот контроллер:
public function profile_image() {
if($this->session->userdata('is_logged_in')){
$username = $this->session->userdata('v_member_username');
$url1 = $this->my_profile_model->see_if_old_image_exists($username);
if (empty($_FILES['profile_image']['tmp_name'])) {
return true;
}else{
$url2 = $this->do_upload();
$this->my_profile_model->update_profile_image($url2, $username);
if(!empty($url1)){
$this->my_profile_model->delete_old_profile_image($url1);
}
}
}
}
private function do_upload() {
$type = explode('.', $_FILES['profile_image']['name']);
$type = $type[count($type)-1];
$filename = uniqid(rand()).'.'.$type;
$url2 = './uploads/temp/'.$filename;
if(in_array($type, array('jpeg', 'gif', 'png', 'jpg')))
if (empty($_FILES['profile_image']['tmp_name'])) {
return TRUE;
}else{
if(is_uploaded_file($_FILES['profile_image']['tmp_name']))
if(move_uploaded_file($_FILES['profile_image']['tmp_name'], $url2));
return $url2;
return '';
// do_thumb
$this->load->library('image_lib');
$source_path = $_SERVER['DOCUMENT_ROOT'] . 'uploads/temp/' . $filename;
$target_path = $_SERVER['DOCUMENT_ROOT'] . 'uploads/profile/';
$config_manip = array(
'image_library' => 'gd2',
'source_image' => $source_path,
'new_image' => $target_path,
'maintain_ratio' => TRUE,
'create_thumb' => TRUE,
'thumb_marker' => '_thumb',
'width' => 270,
'height' => 263
);
$this->load->library('image_lib', $config_manip);
if (!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
}
// clear //
$this->image_lib->clear();
}
}
И моя модель:
// Update profile Image
function update_profile_image($url2, $username){
$this->db->set('profile_image', $url2);
$this->db->where('v_member_username', $username);
$this->db->update('vbc_registered_members');
}
// Look If There Was Any Old Image Earlier
function see_if_old_image_exists($username) {
$this->db->select('profile_image');
$this->db->from('vbc_registered_members');
$this->db->where('v_member_username', $username);
$query = $this->db->get();
$query_result = $query->result();
$row = $query_result[0];
return $row->profile_image;
}
// Auto Delete profile Image From Upload Folder On Updating New Image
function delete_old_profile_image($url1) {
unlink($url1);
return TRUE;
}
Пожалуйста посоветуйте.
Что такое сообщение об ошибке или ответ –
@Abdulla, не сообщение об ошибке ... ли все, кроме миниатюры. –