CodeIgniter - 图像大小调整不起作用
问题描述:
我刚刚开始编程一两个星期前,所以我为可能很糟糕的代码道歉,但我一直很难找出这一件事。我设法让文件上传到指定的目的地,但我无法使调整大小/图像处理工具正常工作。CodeIgniter - 图像大小调整不起作用
给我这个问题的代码是注释掉的部分,我已经确保给文件夹适当的权限。任何帮助都会非常出色。
我也很好奇我怎么会使用绝对路径,这样的事情,
由于一吨。
功能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');
}
}
答
您的代码看起来不错,我(除了加载图像库两次!)。尝试将新图像的路径添加到您的配置阵列中。
$resize['new_image'] = '/path/to/new_image.jpg';
你不应该需要它,但它可能是值得一试! 另外,根据我的评论,你应该在条件中包装resize()函数,以便测试和回应任何错误。
PS。当你更习惯CI并且MVC模型考虑将所有数据库逻辑移动到模型时。
“不工作”的描述将非常有用:) – 2011-02-16 09:28:33
调整大小的图像从未在服务器上显示:/。 – Augury 2011-02-16 16:44:07