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

问题描述 投票:0回答:1

这让我很困惑 - 这个函数是由图像上传表单调用的,我只是想在上传后调整图像的大小 - 我似乎无法让它与 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 的路径是否有问题?

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

php codeigniter image-resizing
1个回答
0
投票

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

$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';
© www.soinside.com 2019 - 2024. All rights reserved.