2016-05-18 127 views
0

我的控制器:如何上传图片,调整其大小以及如何在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); 
} 

这里像正常工作和上传,但调整不工作。我必须显示指定宽度和高度的已调整大小的图像。我是新来的。 预先感谢。

回答

0

试试这个:

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

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”文件夹中

0

不要分心,如果要在通过网络上传视频之前调整图像大小,可以将它javascript调整为画布,然后将画布图像发送到toDataURL。这将有助于防止某人上传大量内容,并使您的网络和服务器与之争斗。 这也取决于您的客户端是否在HTML客户端中。 以下文章可以帮助您: https://stackoverflow.com/a/10334170/811827