【问题标题】:How to upload a single image with multiple dimensions using Codeigniter?如何使用 Codeigniter 上传具有多个维度的单个图像?
【发布时间】:2015-10-04 00:05:48
【问题描述】:

上传一张原始大小的图片后,我可以将该图片保存在文件夹和数据库中。

现在我想在上传时将同一张图片调整为多个尺寸。我不知道该怎么做。这是我的代码

控制器:

$newpath = './img/Pics/'.$user_id;

if (!is_dir($newpath)){
    mkdir($newpath, 0777);
}

$config['upload_path'] = $newpath;
$config['allowed_types'] = 'gif|jpg|png|jpeg|pdf';
$config['overwrite'] = TRUE;
$config['max_width']  = '256';
$config['max_height']  = '256';
$this->load->library('upload', $config);
$this->upload->initialize($config);
$field_name ="reg_pic";
$rgpic="0";

if (!$this->upload->do_upload($field_name)) {
    $error = $this->upload->display_errors();
    $data['error']=$error;
} 
else {
    $data = $this->upload->data();
    $regpicname= $user_id.'/'.$data['file_name'];
    $rgpic="1";
}

if ($rgpic!=0) {
    $data = array(
        'reg_image'=>$regpicname
    );
} 

请帮我解决这个问题。

【问题讨论】:

  • Image resize with php 的可能重复项
  • 请给我一些想法。我完全不知道这一点
  • 查看link 上传图片后,您可以使用resize 功能和covnert 到各个维度。

标签: php image codeigniter image-resizing image-upload


【解决方案1】:

使用 image_lib

  $this->load->library('image_lib');   
     $newpath = './img/Pics/'.$user_id;
               if(!is_dir($newpath)){
                mkdir($newpath, 0777);
                }
                $config['upload_path'] = $newpath;
                $config['allowed_types'] = 'gif|jpg|png|jpeg|pdf';
                $config['overwrite'] = TRUE;
                $config['max_width']  = '256';
                $config['max_height']  = '256';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);
                $field_name ="reg_pic";
                $rgpic="0";
                if ( !$this->upload->do_upload($field_name))
                {
                $error = $this->upload->display_errors();
                $data['error']=$error;
                }
                else
                {
                $data = $this->upload->data();
                $regpicname= $user_id.'/'.$data['file_name'];
                $rgpic="1";


                 if($rgpic!=0)
                 {
               $data = array(
                           'reg_image'=>$regpicname
                  );

$thumb='thumb_'.$regpicname;
                   $data=array('upload_data' => $this->upload->data());
                    $config['image_library'] = 'gd2';
                    $config['source_image'] =  $data['upload_data']['full_path'];
                    $config['new_image'] =  $data['upload_data']['full_path'].'/thumb/'.$thumb;
                    $config['maintain_ratio'] = FALSE;
                    $config['width'] = 160;
                    $config['height'] = 160;

                    $this->image_lib->initialize($config);

                    if(!$this->image_lib->resize())
                    {
                        echo('<pre>');
                        echo ($this->image_lib->display_errors());
                    }
                }
               } 

更多详情请参考

https://ellislab.com/codeigniter/user-guide/libraries/image_lib.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2016-07-27
    相关资源
    最近更新 更多