CodeIgniter Image Upload - невозможно получить сообщение об ошибке, чтобы показать - PullRequest
0 голосов
/ 19 апреля 2011

Это моя модель загрузки

    function upload_avatar()
    {
        $id = $this->tank_auth->get_user_id();

        //config upload parameters and upload image
        $config = array(
            'allowed_types' => 'jpeg|jpg|png',
            'upload_path' => $this->upload_path,
            'max_size' => 2048,
            'encrypt_name' => TRUE,
            'overwrite' => FALSE,
        );
        $this->load->library('upload', $config);
        $this->upload->do_upload();

        //get upload data, config, resize uploaded image, save in avatars subfolder
        $image_data = $this->upload->data();

        if ($image_data['file_size'] < 2048) {

            $config = array(
                'source_image' => $image_data['full_path'],
                'new_image' => $this->upload_path . '/avatars',
                'maintain_ratio' => TRUE,
                'width' => 125,
                'height' => 125
            );
            $this->load->library('image_lib', $config);
            $this->image_lib->resize();

            //only burn avatar path to user_profiles table if no upload errors
            if (!$this->upload->display_errors()) {
                $data = array('avatar' => base_url() . 'images/avatars/' . $image_data['file_name']);
                $this->db->where('id', $id);
                $this->db->update('user_profiles', $data);
            }

            //delete the original file from server
            $this->load->helper('file');
            unlink($image_data['full_path']);

        } else {

    echo $this->upload->display_errors();

        }
    }

Не удается отобразить сообщение об ошибке прямо в браузере при попытке загрузить файл размером более 2 МБ.

Если честно, CI игнорирует этот большой файл и правильно загружает его, когда размер файла <2 МБ. </p>

Единственное, что я не могу отобразить сообщение об ошибке на внешнем интерфейсе, чтобы дать suer обратную связь.

Есть идеи, что здесь не так?

Ответы [ 2 ]

1 голос
/ 01 августа 2011
$config['upload_path'] = 'uploads/category/'.$id.'/';
        //echo $file_name;die;
        //echo $config['upload_path'];
        $config['allowed_types'] = 'gif|jpg|jpeg|png';
        $config['max_size'] = '2048';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload');
         foreach ($_FILES as $key => $value) {
            //print_r($key);

            if (!empty($key['name'])) {

                $this->upload->initialize($config);
                if (!$this->upload->do_upload($key)) {
                  // echo 'test';die;
//                    rmdir('uploads/category/'.$id);
                    $errors = $this->upload->display_errors();
                    flashMsg($errors);
                }
}
}

попробуй !!

0 голосов
/ 19 апреля 2011

Ваш лимит post_max_size меньше 2 МБ?(http://ca3.php.net/manual/en/ini.core.php#ini.post-max-size) Если это так, файл может быть удален до вызова вашего кода.

Обновление:

Если вы выполняете вызов функции в блоке else,и просто вставьте выход («слишком большой»); сможете ли вы потом увидеть ошибки? Если это так, может быть проблема с тем, как вы передаете вызов.

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