Функция PHP imagecreatefromstring не работает на Amazon Linux Server - PullRequest
2 голосов
/ 23 февраля 2011

Я создал скрипт, в котором я должен создавать образ во время выполнения, используя 64-битную строку .im, используя функцию PHP imagecreatefromstring, но он работает в моем PHP на основе Windows XAMPP, но не в моих приложениях на стороне облака, на которых я развернул Облако Amazon работает под управлением SUSE версии Linux.

Можете ли вы дать мне какие-либо предложения по преодолению проблемы. Или есть какая-то другая функция, которая способна создать изображение из переданной ей закодированной строки.

Спасибо в Adv

Я использую следующий код

<?php
         require ('../dbconfig/dbConfig.php');

    $gameId = $_POST["gameId"];
    $username = $_POST['email'];
    $imagedata =  $_POST['imagedata'];

    $uploaddir = './../blogdata/i/'; 

    $countSql =  mysql_query("select  max(_id) as fileName  from blog_data ");

    while($rowCommentData = mysql_fetch_assoc($countSql))
    {
        $num = $rowCommentData["fileName"];
        $file = ++$num.".png";
        $filedb = $uploaddir .$file;
    }


   /* $imagedata= 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
               . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
               . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
               . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';*/

    $imagedata= base64_decode($imagedata);

    if(($img = @imagecreatefromstring($imagedata)) !== FALSE) 
    {

            if(imagepng($img,$filedb))
            {       
                    imagedestroy($img);

                    $sql="Insert into blog_data (game_id,text,type,username)".
                                   "Values('$gameId','$file','i','$username')";

                    $result=mysql_query($sql);

                    if($result == 1)
                    {
                        echo $file; 
                    }
                    else
                    {
                        echo "error2";
                    }
            } 
            else {
                echo "error1";
            }               
                   }
    else
    { 
         echo "error0";
    }

?>

Запустив там информацию о PHP, я получил эту информацию enter image description here

Ответы [ 3 ]

4 голосов
/ 23 февраля 2011

PHP должен иметь установленное и загруженное расширение libgd. Проверьте phpinfo (), если он есть. Вы, вероятно, можете установить его через Yum. Пакет должен называться php5-gd

1 голос
/ 23 февраля 2011

Судя по вашему коду, у вас не установлено расширение GD. Пожалуйста, проверьте вывод phpinfo и найдите расширение GD

0 голосов
/ 23 февраля 2011

Вам понадобится root-доступ к серверу, который, я думаю, вы не получите с облачным сервисом Amazon. Вам нужно будет перекомпилировать php с флагом --with-gd.

http://www.php.net/manual/en/image.installation.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...