如何上传图像,调整大小以及如何在codeigniter中显示已调整大小的图像?

时间:2016-05-18 04:02:27

标签: php codeigniter

我的控制器:

  public function addgalleryProcess()
        {


            $height = $this->input->POST('height');
            $width = $this->input->POST('width');


            $config['upload_path'] = './assets/images/gallery';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '1000';
            $config['max_width']  = '';
            $config['max_height']  = '';
            $config['overwrite'] = TRUE;
            $config['remove_spaces'] = TRUE;

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

            if ( ! $this->upload->do_upload())
            {
                  $error = array('error' => $this->upload->display_errors());
                  $this->load->view('admin/addgallery', $error);
            }
            else
            {

                 $upload_data = $this->upload->data();

                //resize:

                $config1['image_library'] = 'gd2';
                $config1['source_image'] = $upload_data['full_path'];
                $config1['maintain_ratio'] = TRUE;
                $config1['create_thumb'] = TRUE;
                $config1['width'] = $width;
                $config1['height'] = $height;
                $this->load->library('image_lib', $config1); 
                $this->image_lib->resize();

                 $this->adminModel->galleryimages($upload_data);
                 $this->load->view('admin/homeView'); 
              }

我的模特:

public function galleryimages($image_data = array())
{

    $data = array(
    'image' => $image_data['file_name'],

    );

        $this->db->insert('gallery', $data);
}

此处图片已正确上传并正常工作,但调整大小无效。我必须显示具有指定宽度和高度的已调整大小的图像。我是新来的。 提前感谢。

2 个答案:

答案 0 :(得分:0)

试试这个:

对于图像调整大小我建议使用“TimThumb”TimThumb - PHP Image Resizer

https://www.binarymoon.co.uk/projects/timthumb/

我在我的项目中使用了timthumb,如

<img src="<?php echo base_url('assets/common/timthumb') . '/timthumb.php?src=./assets/myuploads/myimagename.jpg&w=245&h=164'; ?>" alt="">

我已将timthumb.php放在“assets”文件夹中,并将我的图片上传到“assets / myuploads”文件夹

答案 1 :(得分:0)

不要分散注意力,如果您想在通过网络上传之前调整图像大小,可以将其javascript到画布,然后将画布图像发送到toDataURL。这有助于防止有人上传大量内容,并且您的网络和服务器都在努力。 这也取决于您的客户端是否在HTML客户端中。 以下文章可以帮助解决这个问题: https://stackoverflow.com/a/10334170/811827

相关问题