Linux 求助 [php] 问题:上传图片可以产生原图,但是不能产生缩略图

匿名 · 2017年09月07日 · 786 次阅读

【php】问题:上传图片可以产生原图,但是不能产生缩略图

环境信息:

php手动编译版本:PHP 5.6.31 (cli) (built: Sep  7 2017 14:07:47) 
操作系统:Linux SHB-L0071336 2.6.32-642.6.2.el6.x86_64 
apache :   httpd-2.4.27
上传图片:559k,png格式

php.ini 文件上传配置信息

file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

存放图片目录权限

//文件总目录权限
drwxrwxrwx  3 daemon daemon  4096 Sep  7 18:17 files
//原图权限
-rw-r--r-- 1 daemon daemon  558588 Sep  7 18:01 test2 (3).png
//缩略图目录权限
drwxrwxrwx 2 daemon daemon    4096 Sep  6 15:49 thumbnail

报错信息

{"files":[{"name":"test2 (4).png","size":558588,"type":"image\/png","url":"http:\/\/30.4.16.173\/files\/test2%20%284%29.png","error":"Failed to resize image (original, thumbnail)","deleteUrl":"http:\/\/30.4.16.173\/?file=test2%20%284%29.png","deleteType":"DELETE"}]}
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message:  Undefined offset: 0</p>
<p>Filename: controllers/Welcome.php</p>
<p>Line Number: 142</p>
    <p>Backtrace:</p>
            <p style="margin-left:10px">
            File: /usr/local/Apache2/htdocs/application/controllers/Welcome.php<br />
            Line: 142<br />
            Function: _error_handler            </p>

            <p style="margin-left:10px">
            File: /usr/local/Apache2/htdocs/index.php<br />
            Line: 315<br />
            Function: require_once          </p>
</div>

/usr/local/Apache2/htdocs/application/controllers/Welcome.php 142 行代码

public function manDevices(){   

        $par = $this->uri->segment(3);
        $ref_url = $_SERVER['HTTP_REFERER'];
        $arr = explode("/",$ref_url);
        $id = $arr[count($arr) - 1];

        //print_r($param);
        //exit;

        if($par == "server"){
            error_reporting(E_ALL | E_STRICT);
            require('UploadHandler.php');
            //$param = $this->uri->segment(4);
            $requestMethod = $_SERVER['REQUEST_METHOD'];

            if(empty($param)){
                $param = $this->uri->segment(4);
                if(empty($param)){
                    $img = $_GET["file"]; //获取上传的文件名
                    $upload_handler = new UploadHandler();    //上传某张图片
                }else{
                    if($requestMethod == "GET"){
                        //$upload_handler = new UploadHandler();   //返回所有的图片
                    }else if($requestMethod == "POST"){

                        $upload_handler = new UploadHandler();
                                                //下面即是142行
                        $img_url = array_keys($upload_handler->image_objects)[0];
                        $img_arr = explode("/",$img_url);
                        $img = $img_arr[count($img_arr) - 1];

                        $this->ManPicMod->addPicToDev($id,$img);
                    }else if($requestMethod == "DELETE"){       //删除特定图片
                        $upload_handler = new UploadHandler();
                    }
                }
            }
        }else{
            $this->load->view('index');
        }
    }

已解决,原因是 php 的扩展 gd 模块未生效,重新下载编译配置生效后,问题解决

共收到 0 条回复 时间 点赞
匿名 关闭了讨论 09月08日 15:40
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册