【问题标题】:tinypng error while trying to compress image尝试压缩图像时出现tinypng错误
【发布时间】:2017-06-01 06:30:58
【问题描述】:

我正在尝试将图像上传到我的服务器后进行压缩,一切都按预期进行,但是当我将我的更改从本地机器上传到在线服务器时,出现了这个错误

调用未定义函数 Tinify\curl_version()

所以我的源代码在我的本地机器下面:

require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify/Exception.php');
        require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify/ResultMeta.php');
        require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify/Result.php');
        require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify/Source.php');
        require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify/Client.php');
        require_once(APPPATH.'libraries/tinify-php-master/lib/Tinify.php');

        \Tinify\setKey("4R8QNHlOax0Mcp7lho4QiOBUnTjJuZYj");

        if($this->upload->do_upload("file")){
            $imageDetailArray = $this->upload->data();
            $pic =  $imageDetailArray['file_name'];

            $unoptimized_img_loc = 'uploads/'.$pic;

            $img_url = base_url() . "include/" . $unoptimized_img_loc;
            try {
                $source = \Tinify\fromFile($img_url);

                $optimized_img_name = 'compressed_imgs/users_profile_pic/profile_pic'.$pic;

                $resized = $source->resize(array(
                        'method' =>'fit',
                        'width' => 300,
                        'height' =>300
                ));
                $resized->toFile($_SERVER['DOCUMENT_ROOT']."/html/include/".$optimized_img_name);
            }catch (\Tinify\Exception $e){
                print_r($e);exit();
            }

            $dataIn['logo'] = $optimized_img_name;
        } 

同样的代码上传到我的虚拟机服务器,但不起作用

请帮忙 提前致谢,

【问题讨论】:

    标签: php curl image-compression


    【解决方案1】:

    更新 2017-06-01 09:30AM CEST

    确保 curl 在您的 php.ini(或者可能是 curl.ini?)中被激活:

    extension=curl.so

    添加后,重新启动您的网络服务器。


    您缺少已安装的 curl 包。安装例如 php-curl

    您没有提及您的操作系统和版本,但在这里您可以找到安装和配置详细信息:http://php.net/manual/en/book.curl.php

    以下,来自https://board.s9y.org/viewtopic.php?f=4&t=20857 的引用相同的原因:

    上传安装了新插件的图像时出现此错误:Fatal error: Call to undefined function Tinify\curl_version() in /var/www/vps.hommel-net.de/serendipity/plugins/serendipity_event_tinypng/tinify-php/lib/Tinify/Client .php 在第 11 行。此错误后图像在媒体库中,但未压缩。

    您是否可能没有激活 php curl 模块?像php-curl这样的包? 我会看看 Tinyfy-Client 是否真的需要它,但这是可能的。

    就是这样。 debian 软件包是 php5-curl。安装后错误消失了。 It seems that the API of TinyPNG has counted my tries with the error, too.

    请记住 TinyPNG 的 API 会计算您的请求数!

    【讨论】:

    • 7感谢您的回复,我的服务器是 ubuntu 和 php 版本 7,并且 curl 包已经存在,当尝试安装 curl 包时已知如下 php-curl 已经是最新版本。 0 个已升级,0 个新安装,0 个要移除,0 个未升级。
    • 好的,感谢您提供更多信息。请参阅我的更新答案。
    【解决方案2】:
    require_once("vendor/autoload.php");
    
    \Tinify\setKey("B2JCcCK0FqVfDrPyrjX5QW1jYqF7n4vl"); //pass your actual API key
    
    if (isset($_POST['submit'])) {
    
        $supported_image = array('image/gif', 'image/jpg', 'image/jpeg', 'image/png');
    
        if (in_array($_FILES['myfile']['type'], $supported_image)) {
    
            $src_file_name = $_FILES['myfile']['name'];
    
            if (!file_exists(getcwd().'/uploads')) {
    
                mkdir(getcwd().'/uploads', 0777);
            }
    
            move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'/uploads/'.$src_file_name);
    
            //optimize image using TinyPNG
            $source = \Tinify\fromFile(getcwd().'/uploads/'.$src_file_name);
            $source->toFile(getcwd().'/uploads/'.$src_file_name);
    
            echo "File uploaded successfully";
        } else {
            echo 'Invalid file format.';
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 1970-01-01
      • 2012-03-29
      • 2016-08-08
      • 2013-06-06
      • 2014-09-21
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多