【问题标题】:Codeigniter Image_lib library source_imgCodeigniter Image_lib 库 source_img
【发布时间】:2014-01-03 16:43:03
【问题描述】:

这是我的代码:

if(isset($_FILES["image"])){
            $upload_dir = "files/images/user/profile/";
            $ext = end(explode(".", $_FILES["image"]["name"]));
            $config['upload_path'] = $upload_dir."original/";
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = "2048";
            $config['encrypt_name'] = TRUE;
            // $config['file_name'] = $this->session->userdata("username").time().".".$ext;

            $this->load->library("upload", $config);
            if($this->upload->do_upload("image")){
                $image = $this->upload->data();
                $conf_res["image_library"] = "gd2";
                $conf_res["source_img"] = realpath($upload_dir."original/".$image["file_name"]);
                $conf_res["new_image"] = $upload_dir."200x200/".$image["file_name"];
                $conf_res["create_thumb"] = TRUE;
                $conf_res["maintain_ratio"] = TRUE;
                $conf_res["width"] = 200;
                $conf_res["height"] = 200;

                $this->load->library("image_lib", $conf_res);
                if($this->image_lib->resize()){
                    echo "done."; die();
                } else {
                    echo $this->image_lib->display_errors().$conf_res["new_image"].$image["file_name"];
                }

            } else {
                $error = $this->upload->display_errors();
                echo $error.$config['upload_path'];
            }

        }

我得到的错误是:

<p>You must specify a source image in your preferences.</p>
<p>Your server does not support the GD function required to process this type of image.</p>
files/images/user/profile/200x200/2606737d1b67a54cfea0a9d4f16ef336.jpg
2606737d1b67a54cfea0a9d4f16ef336.jpg

我已经思考了大约一个小时我的路径出了什么问题。我什至检查了phpinfo 是否安装了 gd2。我不知道是什么问题!

【问题讨论】:

  • 试试./files/images/user/profile/
  • 不走运!同样的问题。
  • 尝试echo realpath($upload_dir."original/".$image["file_name"]) 如果文件不存在,它将返回false;即什么都不会显示
  • 它给了我一条路径!没问题。

标签: codeigniter gd


【解决方案1】:

尝试改变

$conf_res["source_img"] = realpath($upload_dir."original/".$image["file_name"]);

到这里

$conf_res['source_image']   = realpath($upload_dir."original/".$image["file_name"]);

这也是

$this->load->library('image_lib'); 
$this->image_lib->initialize($conf_res);

查看更多信息here

【讨论】:

  • 根据您的建议,我已经尝试过一次又一次。它给了我同样的错误。上传部分效果很好,但调整大小无法获取源路径。
  • 检查gd是否安装 var_dump(gd_info());也可以试试 $config['source_image'] = $upload_dir."original/".$image["file_name"];
  • 是的,它已安装并且确实支持我正在处理的类型。
  • 我尝试了 var_dump($config),但它在 $config['new_image'] 处没有给我任何东西。它是空的!
  • 它不是 $config 你的数组名 $conf_res 我已经更新了代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多