функция не создает изображение еще изображение оно прошло - PullRequest
1 голос
/ 10 февраля 2012

Хорошо, проблема в том, что функция не создает изображение, или в самом скрипте, который не передает изображение в функцию

Вот скрипт загрузки (примечание: он добавляется в AJAX)

    $path = "cache/";

    $valid_formats = array("jpg", "png", "gif", "jpeg");
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
        {
        $name = $_FILES['photoimg']['name'];
        $size = $_FILES['photoimg']['size'];

        if(strlen($name))
                {
                ist($txt, $ext) = explode(".", $name);
                if(in_array($ext,$valid_formats))
                {
                if($size<(2024*2024))
                    {
                    $new_file = "header.".$ext;
                    $tmp = $_FILES['photoimg']['tmp_name'];
                    if(move_uploaded_file($tmp, $path.$new_file))
                    {

            echo "<img src='cache/".$new_file."?".time()."'  class='preview'>";

               createHeader($new_file);                                 
                    }

                    else
                    echo "failed";
                    }

                    else
                    echo "Image file size max 1 MB";                    
                    }
                    else
                echo "Invalid file format..";   
                }

            else
                echo "Please select image..!";

            exit;
        }

Теперь вот функция

function createHeader($new_file) {

$path = "uploads/";
$image = "cache/";
$width = 800;

    if(preg_match('/[.](jpg)|(jpeg)$/', $new_file)) {  

        $im = imagecreatefromjpeg($image . $new_file); 

    } else if (preg_match('/[.](gif)$/', $new_file)) {  

        $im = imagecreatefromgif($image . $new_file);   
        imagecolortransparent($im, black);      

    } else if (preg_match('/[.](png)$/', $new_file)) {  

        $im = imagecreatefrompng($image . $new_file);   
    }  

    imagealphablending($im, false);
    imagesavealpha($im, true);  

    $ox = imagesx($im);  
    $oy = imagesy($im);  

    $nx = $width;  
    $ny = floor($oy * ($width / $ox) ); 

    imagecopyresampled($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);      
    imagealphablending($im, true);  
    if(!file_exists($path)) {  
      if(!mkdir($path)) {  
           die("There was a problem. Please try again!");  
      }  
       }  

    imagejpeg($nm, $path . $new_file, 100);

    imagedestroy($im);
    imagedestroy($nm);

}

По логике, код должен делать, если пользователь, использующий мою cms, вошел в систему, он может изменить заголовок на странице, щелкнув значок, который вызовет jQuery для edit.php, передав необходимую строку запроса. Оттуда собственный пользователь может загрузить новое изображение, которое будет переименовано в header.jpg и перезаписать исходное изображение

Файл header.jpg должен быть загружен в каталог uploads /, а копия исходного кэша изображений / должна быть не связана, чтобы функция могла создать копию и поместить ее в каталог uploads /.

Что происходит, так это то, что первый скрипт загружает файл и помещает его в кэш / каталог, но, похоже, функция не работает и ничего не делает для загрузки / каталога.

Любая идея, что я могу делать неправильно или не делать, вызывает эту досадную проблему?

1 Ответ

0 голосов
/ 10 февраля 2012

$ path = "cache /";

$valid_formats = array("jpg", "png", "gif", "jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
    $name = $_FILES['photoimg']['name'];
    $size = $_FILES['photoimg']['size'];

    if(strlen($name))
            {
            list($txt, $ext) = explode(".", $name);
            if(in_array($ext,$valid_formats))
            {
            if($size<(2024*2024))
                {
                $new_file = "header.".$ext;
                $tmp = $_FILES['photoimg']['tmp_name'];
                if(move_uploaded_file($tmp, $path.$new_file))
                {

           // This needs to happen before the echo of the image tag
           createHeader($new_file);                                 

        echo "<img src='cache/".$new_file."?".time()."'  class='preview'>";
                }

                else
                echo "failed";
                }

                else
                echo "Image file size max 1 MB";                    
                }
                else
            echo "Invalid file format..";   
            }

        else
            echo "Please select image..!";

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