CODEIGNITER:您的服务器不支持处理此类图像所需的GD功能

时间:2017-09-14 10:55:43

标签: php codeigniter codeigniter-3 image-resizing gd2

Gd2也已启用。试过很多方法......不知道出了什么问题

  

遇到PHP错误   严重性:注意   消息:getimagesize():读错误!   文件名:libraries / Image_lib.php   行号:1651

     

回溯:   文件:/opt/lampp/htdocs/ciflix/application/controllers/Admin.php行:52   功能:库文件:/opt/lampp/htdocs/ciflix/index.php行:315

     

功能:require_once

           

提供的图片无效。

您的服务器不支持处理此类图像所需的GD功能。

$config['upload_path'] = $path;
$config['allowed_types'] = $allowed_types;
$config['max_size'] = 15000;
$config['max_width'] = 1024;
$config['max_height'] = 768;

$this->load->library('upload', $config);

if(!$this->upload->do_upload('userfile')){
    $this->session->set_flashdata('file_error', $this->upload->display_errors());
    redirect('admin/create_blog');
}else{
    $data = $this->upload->data('userfile');
    $config['image_library'] = 'gd2';
    $config['source_image'] = $path.$data['userfile'];
    $config['create_thumb'] = FALSE;
    $config['maintain_ratio'] = FALSE;
    $config['width'] = 200;
    $config['height'] = 200;
    $config['new_image'] = $path.$data['userfile'];
    $this->load->library('image_lib', $config);

    if(!$this->image_lib->resize()){
        echo $this->image_lib->display_errors();
        exit();
    } else {
        echo "Working";
        exit();
    }

    $post_image = $_FILES['userfile']['name'];
}

4 个答案:

答案 0 :(得分:1)

您需要安装GD扩展程序。如果已安装,请修改php.ini以启用它(删除;以使其不作为评论)。

如果没有安装,请尝试:

apt-get install php5-gd

编辑:

我刚注意到你提到了一个.dll。对于Windows来说就是这样!注释iut out,启用extension gd.so,然后重新启动服务器,看看是否有帮助!

答案 1 :(得分:0)

请试试这个

sudo apt-get install php5-gd

apt-get install --reinstall php5.0-gd

然后重启apache

 sudo service apache2 restart

或从php.ini文件中启用库GD2从;extension=php_gd2.dll删除分号

使用以下命令

启用是否启用GD
$ php -i | grep -i --color gd 

您也可以使用php代码进行测试。使用以下代码创建一个php文件并运行并检查GD扩展是否已启用

<?php
  phpinfo();
?>

答案 2 :(得分:0)

在我的项目中,我遇到了类似的问题。这 link 帮我解决了。

替换

$this->load->library('image_lib', $config);

$this->load->library('image_lib');
// Set your config up
$this->image_lib->initialize($config);
// Do your manipulation
$this->image_lib->clear();

答案 3 :(得分:-1)

如果您位于像 XAMPP 这样的本地服务器上,则可能端口80 被另一个应用程序使用。

Postman APi testing