Невозможно изменить размер изображения в CodeIgniter - PullRequest
1 голос
/ 16 февраля 2011

Я только начал программировать неделю или две назад, поэтому я прошу прощения за потенциально ужасный код, но мне было трудно понять эту вещь.
Мне удалось получить файлы для загрузкив назначенный пункт назначения, но я просто не могу заставить работать инструмент изменения размера / изображения.

Код, который вызывает у меня проблему, это закомментированный раздел, и я уже убедился, что дампапки соответствующие привилегии.Любая помощь будет выдающейся.

Мне также было любопытно, как бы я использовал абсолютные пути для чего-то вроде этого:

function avatar_update() {
    $config['upload_path'] = './avatars/';
    $config['allowed_types'] = 'jpg';
    $config['max_size'] = '100';
    $config['max_width'] = '100';
    $config['max_height'] = '100';
    $config['file_name'] = time();

    $filename = $config['file_name'];

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload()) {
        $error = $this->upload->display_errors();
        $this->session->set_flashdata('msg', $error);
        $this->load->view('General/header');
        $this->load->view('profile_view', $error);
        $this->load->view('General/footer');

    } else {
        // $this->load->library('image_lib');

        // $resize['image_library'] = 'gd2';
        // $resize['source_image'] = './avatars/'.$filename.'.jpg';
        // $resize['maintain_ratio'] = TRUE;
        // $resize['create_thumb'] =TRUE;
        // $resize['width'] = 50;
        // $resize['height'] = 50;

        // $this->load->library('image_lib', $resize);

        // $this->image_lib->resize();

        $username = $this->session->userdata('username');
        $avatar = array(
            'avatar' => $filename
        );

        $this->db->where('username', $username);
        $this->db->update('users', $avatar);

        $this->db->select();
        $this->db->where('username', $username);
        $query = $this->db->get('users');

        if ($query->num_rows() > 0) {
            $user_details = $query->row_array();

        }

        $this->session->set_userdata($user_details);

        $this->load->view('General/header');
        $this->load->view('profile_view');
        $this->load->view('General/footer');
    }
}

1 Ответ

1 голос
/ 22 февраля 2011

Ваш код выглядит нормально для меня (за исключением загрузки библиотеки изображений дважды!). Попробуйте добавить путь к новому изображению в массив конфигурации.

$resize['new_image'] = '/path/to/new_image.jpg';

Тебе это не нужно, но стоит попробовать! Кроме того, согласно моему комментарию, вы должны обернуть функцию resize () в условные выражения, чтобы вы могли проверять и выводить любые ошибки.

PS. Когда вы привыкнете к CI и модели MVC, подумайте о переносе всей вашей логики БД в модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...