CodeIgniter图像调整大小:在哪里插入对image_lib的调用>

时间:2013-05-06 11:21:28

标签: codeigniter image-resizing

这是我的头脑 - 这个功能是由图片上传表单调用的,我只是想在上传后重新调整图片大小 - 我似乎无法使用Image_lib库...功能本身很有效。

function saveUploadPin()
 {
     $insert['description']     = $this->input->post('description');
     $insert['user_id']         =  $user_id = $this->session->userdata('login_user_id');
     $insert['board_id']        = $boardId = $this->input->post('board_id');
     $insert['type']            = $this->input->post('type');
     $insert['source_url']      = $this->input->post('link');
     $insert['category']      = $this->input->post('category'); 


     if($_FILES["pin"]["name"]!='')
     {
        if ((($_FILES["pin"]["type"] == "image/gif")|| ($_FILES["pin"]["type"] == "image/jpeg")|| ($_FILES["pin"]["type"] == "image/pjpeg") || ($_FILES["pin"]["type"] == "image/png")|| ($_FILES["pin"]["type"] == "image/PNG")|| ($_FILES["pin"]["type"] == "image/GIF")|| ($_FILES["pin"]["type"] == "image/JPG")|| ($_FILES["pin"]["type"] == "image/JPEG")))
        {
            if ($_FILES["pin"]["error"] > 0)
            {
                echo "Return Code: " . $_FILES["pin"]["error"] . "<br />";
            }
            else
            {
                $image          = $_FILES["pin"]["name"];
                $ext            = explode('/', $_FILES["pin"]["type"]);
                $image          = time().'_'.$image;
                $image = str_replace(' ', '_', $image); 
                $dir = getcwd()."/application/assets/pins/$user_id";


                if(file_exists($dir) && is_dir($dir))
                {

                }
                else{

                  mkdir(getcwd()."/application/assets/pins/$user_id",0777);
                }
                move_uploaded_file($_FILES["pin"]["tmp_name"],
                getcwd()."/application/assets/pins/$user_id/" . $image);
                $image = site_url("/application/assets/pins/$user_id/".$image);

            }
            $insert['pin_url']      = $image;
            //$insert['source_url']      = '';
            $id= $this->board_model->saveUploadPin($insert);
            if($id)
            {
               redirect('board/pins/'.$boardId.'/'.$id);
            }

          }
          else
          {
             redirect('board/index/'.$boardId);
          }
    }
 }

是否应该在move_uploaded_file之后调用此类调用?

$config['image_library'] = 'gd2';
$config['source_image'] = 'not sure what to put here?';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width']     = 550;
$this->image_lib->initialize($config);
$this->image_lib->resize();

我正在使用自动加载器加载Image_lib。我想知道是否存在source_image路径问题?

任何帮助和鼓励都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

使用ci的upload class进行文件上传和处理返回值,相信我更容易 是的,你做对了。

$destination = getcwd()."/application/assets/pins/$user_id/" . $image;
move_uploaded_file($_FILES["pin"]["tmp_name"],$destination);

$config['source_image'] = $destination;

<小时/> 的更新

$image = site_url("/application/assets/pins/$user_id/".$image);
//This will return http://base_url/index.php/application/assets/pins/$user_id/$image,
//if in your config file $config['index_page'] = 'index.php';
//But base_url("/application/assets/pins/$user_id/".$image); will return without index.php
//Assuming that your $config['base_url'] = 'http://base_url';