Създаване на thumb_

HKOne

Registered
Здравейте, имам малак проблем с един код за създаване на малки изображения. Има 2 папки - едната е /images/(тук са изображенията в оригиналния им размер), а другата е /images/thumbs/(тук са по малките изображения в зададения размер 100x147). Проблема е там че след като добавя някой филм от админ панела и се създава само изображението в реалния размер (1234567890.jpg), а по малкото изображение (thum_1234567890.jpg) не се създава. Моля помогнете защото така става много гадно и трябва да смалявам изображенията към филмите и да ги качвам отделно.
Това ми е файла create_poster.php
PHP:
<?php
////////////////////////// ОБЛОЖКА ////////////////////////////////
$server=getenv("HTTP_REFERER");

//Дефиниране на максимален размер за качената картинка
define ("MAX_SIZE","100000");
// Дефинирайте широчината и височината на малкото копие
define ("WIDTH","100");
define ("HEIGHT","147");

//Това е функцията, която ще създаде малкото копие от каченото изображение
// Оразмеряването ще бъде направено спрямо дефинираните широчината и височината,
//но без деформиране на изображението
function make_thumb($img_name,$filename,$new_w,$new_h)
{
//Получаване на разширението на снимката.
$ext=getExtension($img_name);
//Създава се ново изображение използваики подходяща функция от GD библиотеката
if(!strcmp("jpg",$ext) || !strcmp("jpeg",$ext))
$src_img=imagecreatefromjpeg($img_name);

if(!strcmp("png",$ext))
$src_img=imagecreatefrompng($img_name);

if(!strcmp("gif",$ext))
$src_img=imagecreatefromgif($img_name);


//Получаване на оразмеряването
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);

// след което ще сметнем ново оразмеряване на малкото копие
// в следващите стъпки ще направим:
// 1. Смятаме съотношението, като заменим старото оразмеряване с ново.
// 2. Ако ширината е по-голяма, тя ще се промени до максимално зададената
// и височината така ще се сметне, че да не се развали оразмеряването.
// 3. В противен случай ще използваме височината на изображението
// като запазим оразмеряването.
$thumb_w=$new_w;
$thumb_h=$new_h;

// Създаваме нова картинка с новото оразмеряване
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);

// оразмерете голямото изображение на новото и създаваме ново
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);

// Извеждаме създаденото изображение към файла. Сега ще имаме малко копие на файла $filename
if(!strcmp("png",$ext))
imagepng($dst_img,$filename);

//Разрушава източника на изображението.
imagedestroy($dst_img);
imagedestroy($src_img);
}

// Тази функция чете разширението на файла.
// Тя е използвана да определи дали файла е картинка.
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}

// Тази променлива е използвана като флаг.
//Стойността е инициализирана с 0 (Значи няма открити грешки)
//и ще се промени на 1 ако е намерена грешка. Тогава файла няма да се качи.
$errors=0;

/////////////////////// ОБЛОЖКА ///////////////////////////

?>
А това ми е файла addtr.php
PHP:
<?php
session_start();
define('IN_VALID', true);
require '../connect.php';
if ($_SESSION['username'] != 'admin' || $_SESSION['password'] != '12345678')
{
    header('Location: ../404.html');
    exit();
}
require 'create_poster.php';
if(isset($_POST['upload']))
{                 
// СЪЗДАВАНЕ НА ОБЛОЖКА
    $nowTime = time(); // ползваме го за име на изображението
    $greshka = array(); // масив за всички грешки
    //Прочита името на файла които потребителят качва
    $image=$_FILES['image']['name'];
// Ако не е било празно
if ($image)
{
    // получава оригиналното име
    $filename = stripslashes($_FILES['image']['name']);

    // получаване на разширението на файла на ниско ниво
    $extension = getExtension($filename);
    $extension = strtolower($extension);
    // Ако е с неизвестно разширение, ще изкара съобщение за грешка
    //и файла няма да бъде качен.
    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
    {
        $greshka[] = 'Не известно разширение!';
        $errors=1;
    }
    else
    {
        // Взимане на размера в байтове
        // $_FILES[\'image\'][\'tmp_name\'] временното име на файла докато файла се качи на сървъра
        $size=getimagesize($_FILES['image']['tmp_name']);
        $sizekb=filesize($_FILES['image']['tmp_name']);

    //Задаване на максимален размер в kb и изкарване на грешка ако се надвиши.
    if ($sizekb > MAX_SIZE*10240)
    {
        $greshka[] = 'Надвишен е лимитът за размер!';
        $errors=1;
    }
    else
    {
        //за име задаваме времето в което е качен файла в UNIX времеви формат
        $image_name=$nowTime.'.'.$extension;
        //картинката ще се запише с новото име в зададената папка (images папката)
        $newname="../images/".$image_name;
        $copied = copy($_FILES['image']['tmp_name'], $newname);
    //Ако картинката се качи но не се копира малкото копие да изкара грешка
    if (!$copied)
    {
        $greshka[] = 'Копирането не е успешно!';
        $errors=1;
    }
    else
    {
        // Новият thumbnail ще се намира в папка images/thumbs/
        $thumb_name='../images/thumbs/thumb_'.$image_name;
        // call the function that will create the thumbnail. The function will get as parameters
        //the image name, the thumbnail name and the width and height desired for the thumbnail
        $thumb=make_thumb($newname,$thumb_name,WIDTH,HEIGHT);
}}} }
else
{
    $greshka[] = "Не сте избрали изображение !";
    $errors=1;
}

    // Проверка и добавяне на трейлъра към база данни
    $title = htmlspecialchars(addslashes($_POST['title']));
    $engtitle = htmlspecialchars(addslashes($_POST['engtitle']));
    $youtube = htmlspecialchars(addslashes($_POST['youtube']));
    $opisanie = htmlspecialchars(addslashes($_POST['opisanie']));
    $poster = $nowTime.".$extension";
    $Rej = htmlspecialchars(addslashes($_POST['Rej']));
    $Scen = htmlspecialchars(addslashes($_POST['Scen']));
    $Akt = htmlspecialchars(addslashes($_POST['Akt']));
    $date = htmlspecialchars(addslashes($_POST['Premiere']));
    $prevod = htmlspecialchars(addslashes($_POST['prevod']));
    $Premiere = strtotime($date);
    $vbox = htmlspecialchars(addslashes($_POST['vbox']));

    if ( $title == NULL || $engtitle == NULL || $opisanie == NULL || $Rej == NULL || $Scen == NULL || $Akt == NULL || $Premiere == NULL || $vbox == NULL || $poster == NULL || $prevod == NULL)
    {
        $greshka[] = 'Не са попълнени всички полета!';
        $errors=1;
    }



// Ако няма никакви грешки записваме трейлъра в базата
if (!$errors)
{
    $cat = ",".implode(",",$_POST['cat']).",";
    mysql_query("INSERT INTO trailers SET title='$title', engtitle='$engtitle', video='$youtube', opisanie='$opisanie', poster='$poster', janr='$cat', Rej='$Rej', Scen='$Scen', Akt='$Akt', Premiere='$Premiere', bg='$prevod', vbox='$vbox' ") or die (mysql_error()) ;
    $success = "<div class='success'>Трейлъра е добавен успешно</div>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="shortcut icon" href="../trailer.png" />
        <link href="../CSS/cp.css" type="text/css" rel="stylesheet" />
        <title>добавяне на филм</title>
    </head>
    <body>
        <div class="container">
            <?php
                require 'menu.php';
            ?>

        <div class="video-edit">
                <?php if(!isset($success)){ ?>
                <?php
                if(isset($greshka))
                {
                    foreach ($greshka as $all)
                    {
                        echo "<div class='error'>".$all."</div><br/>";
                    }
                }
                ?>
                <h3>Добавяне на филм</h3>
                <form method="POST" enctype="multipart/form-data" action="">
                    <table>
                        <tr>
                            <td width="170">Заглавие на български:</td>
                            <td><input type="text" name="title" value="<?php echo $_POST['title']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Заглавие на английски:</td>
                            <td><input type="text" name="engtitle" value="<?php echo $_POST['engtitle']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Премиерна дата:</td>
                            <td><input type="text" name="Premiere" value="<?php print $_POST['Premiere'] ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Режисьор:</td>
                            <td><input type="text" name="Rej" value="<?php echo $_POST['Rej']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Сценарист:</td>
                            <td><input type="text" name="Scen" value="<?php echo $_POST['Scen']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Актьори:</td>
                            <td><input type="text" name="Akt" value="<?php echo $_POST['Akt']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>Резюме:</td>
                            <td><textarea name="opisanie" style=" width: 804px; height: 100px;"><?php echo $_POST['opisanie']; ?></textarea></td>
                        </tr>
                        <tr>
                            <td>ID Vbox7:</td>
                            <td><input type="text" name="vbox" value="<?php echo $_POST['vbox']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                            <td>ID Putlocker:</td>
                            <td><input type="text" name="youtube" value="<?php echo $_POST['youtube']; ?>" size="130"/></td>
                        </tr>
                        <tr>
                        <td>Превод:</td>
                        <td>
                            <input type='radio' value='1' name='prevod'/> Да
                            <input type='radio' value='0' name='prevod'/> Не
                        </td>
                        </tr>
                        <tr>
                            <td>Жанр:</td>
                            <td>
                                <?php
                                $r = mysql_query("SELECT * FROM cat");
                                while($row = mysql_fetch_array($r)){
                                ?>
                                <div style=" float: left; border: 1px solid #999; width: 140px; text-align: center; padding: 5px; margin: 5px; background: #FFF;">
                                    <?php print $row[janr]; ?>
                                <input type="checkbox" name="cat[]" value="<?php print $row[id]; ?>" />
                                </div>
                                <?php
                                }
                                ?>
                            </td>
                        </tr>
                        <tr>
                            <td>Качи обложка:</td>
                            <td><input type="file" name="image" size="50" /></td>
                        </tr>
                        <tr>
                            <td colspan="2" align="right"><input type="submit" name="upload" value="Добави филма" class="submit"/></td>
                        </tr>
                    </table>
                </form>
                <?php } else print $success; ?>
            </div>
        </div>
    </body>
</html>
 

Горе