Webmaster общности: Predpriemach.com | SearchEngines.bg

    Dynamic Gallery – Динамична галерия

    Автор: StormBreaker

    Здравейте на всички! Преди една седмица знаех да пиша само калкулатори , а сега… Ама хайде да пристъпваме към самата галерия! Тази галерия автоматично изкарва картинките от дадена директория, прави им малки копия, създава връзки към големите, като се отварят в друг прозорец, показва оригиналният им размер и ги подрежда в три колони! Забравих да кажа, че включва и възможност за качване на снимки, като те се записват в отделна директория и вие трябва да ги одобрите и копирате в директорията където са другите снимки. Ако пък не искате да ги одобрявате просто слагате в conf.php еднакви директории за четене и качване!

    Ето, изписах цял роман, а още не съм дал скриптовете.

    Ето ги и тях:

    config.php

    <?php
    
    // Името на папката в която са снимките...
    $path = 'images';
    
    // Името на папката в която ще се качват снимките (те няма да са видими докато не ги одобрите)!
    $uppath = 'upload';
    
    // Максималната ширина на картинките...
    $nwth = 120;
    
    // Максимална големина на картинките за качване! В Байтове.
    $max_size = 20000;
    
    ?>

    index.php

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Dynamic Gallery</title>
    <style type="text/css">
    <!--
    .style1 {
    color: #000000;
    font-size: 11px;
    }
    -->
    </style>
    <center><h1>Dynamic Gallery</h1></center>
    </head>
    <body bgcolor="#666666" Link="#FFFFFF" VLink="#FFFFFF" ALink="#FFFFFF">
    
    <? include 'table.php'; ?>
    
    <center>
    
    <?php
    
    if (!($page <= 0)){
    echo "<a href=\"?page=".$minus."\"><< предишна | </a>";
    }
    
    $b = 1;
    
    for ($a = 0; $a < $maxpage; $a++){
    
    if ($a == $page)
    echo "<a href=\"?page=".$a."\"><b> ".$b." </b></a>";
    
    else
    echo "<a href=\"?page=".$a."\"> ".$b." </a>";
    
    $b = $b + 1;
    }
    if (($page + 1) < $maxpage){
    echo "<a href=\"?page=".$plus."\"> | следваща >></a>";
    }
    ?>
    <br />
    <br />
    <a href="upload.php" class="style1">Качи картинка</a>
    </center>
    </body>
    </html>

    resize.php

    <?php
    Header("Content-type: image/jpeg");
    include 'config.php';
    $im = $path."/".$im;
    $orig_image = imagecreatefromjpeg($im);
    list($width, $height, $type, $attr) = getimagesize($im);
    if ($width > $nwth) {
    $ratio = $nwth / $width;
    $newheight = $ratio * $height; }
    else $newheight = $height;
    $sm_image = imagecreatetruecolor($nwth,$newheight) or die ("Cannot Initialize new gd image stream");;
    Imagecopyresampled($sm_image,$orig_image,0,0,0,0,$nwth,$newheight,imagesx($orig_image),imagesy($orig_image));
    imageJPEG($sm_image);
    imagedestroy($sm_image);
    imageDestroy($orig_image);
    ?>

    table.php

    <center>
    <table width="873" height="6" border="0" cellpadding="3">
    <?php
    include 'config.php';
    
    if (!($page))
    $page = 0;
    
    $plus = $page + 1;
    $minus = $page - 1;
    
    $min = $page * 15;
    
    $max = ($page * 15) + 15;
    
    $i = 0;
    $imgDir = opendir ($path);
    while ( $file = readdir( $imgDir ) )
    {
    $file_type = strrchr( $file, "." );
    $is_image = eregi( "jpg|gif|png|bmp",$file_type );
    
    if ( $file != '.' && $file != '..' && $is_image )
    { $images[$i++] = $file; }
    }
    
    $maximage = count($images);
    $maxpage = $maximage / 15;
    ///////////////////////////////////////////////////////////////////////
    echo "<tr>\n <td width=\"428\" align=\"center\" bgcolor=\"#666666\"></td>\n";
    echo "<td width=\"428\" align=\"center\" bgcolor=\"#666666\"></td>\n";
    echo "<td width=\"428\" align=\"center\" bgcolor=\"#666666\"></td>\n </tr>";
    
    for ( $i = $min; $i<$max && $i<$maximage; $i++){
    /////////
    @ $size = getimagesize($path."/".$images[$i]);
    /////////
    echo "<tr>\n <td align=\"center\"><a href=".$path."/".$images[$i]." target=\"_blank\"><img border=\"0\" src=resize.php?im=".$images[$i]."></a>\n";
    echo "<center><b>".$size[0]." x ".$size[1];
    echo "</b></center></td>\n";
    /////////
    $i = $i + 1;
    /////
    @ $size = getimagesize($path."/".$images[$i]);
    /////////
    echo "<td align=\"center\"><a href=".$path."/".$images[$i]." target=\"_blank\"><img border=\"0\" src=resize.php?im=".$images[$i]." alt=\"\"></a>\n";
    echo "<center><b>".$size[0]." x ".$size[1];
    echo "</b></center></td>\n";
    /////
    $i = $i + 1;
    /////
    @ $size = getimagesize($path."/".$images[$i]);
    /////////
    echo "<td align=\"center\"><a href=".$path."/".$images[$i]." target=\"_blank\"><img border=\"0\" src=resize.php?im=".$images[$i]." alt=\"\"></a>\n";
    echo "<center><b>".$size[0]." x ".$size[1];
    echo "</b></center></td></tr>\n";
    /////
    }
    
    closedir ($imgDir);
    ?>
    </table></center>

    upload.php

    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Dynamic Gallery - Upload Image</title>
    <body bgcolor="#CCCCCC">
    <? include 'config.php'; ?>
    
    <FORM ENCTYPE="multipart/form-data" ACTION="<? $PHP_SELF ?>" METHOD="POST">
    <b>Качване на картинка! Не трябва да е по-голяма от <? echo $max_size; ?> байта!</b><br />
    <?
    if (!($path == $uppath))
    echo "<b>След като тя е качена трябва администраторът на галерията да я одобри.</b><br /><br />";
    ?>
    Картинката:
    <INPUT TYPE="file" NAME="userfile">
    <INPUT TYPE="submit" VALUE="Upload">
    <br />
    <br />
    </FORM>
    
    </body>
    </html>
    
    <?php
    
    if (!isset($HTTP_POST_FILES['userfile'])) exit;
    
    if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
    
    if ($HTTP_POST_FILES['userfile']['size']>$max_size) { echo "<b>Картинката е прекалено голяма!</b><br />"; exit; }
    
    if (($HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/png")) {
    
    if (file_exists($uppath."/".$HTTP_POST_FILES['userfile']['name'])) { echo "<b>Картинка с това име е вече качена!</b><br />"; exit; }
    
    $res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $uppath."/".
    
    $HTTP_POST_FILES['userfile']['name']);
    
    if (!$res) { echo "<b>Картинката не е качена!</b><br />"; exit; } else { echo "<b>Картинката е качена успешно!</b><br />"; }
    
    echo "Име на файла: ".$HTTP_POST_FILES['userfile']['name']."<br />";
    
    echo "Големина на файла: ".$HTTP_POST_FILES['userfile']['size']." Байта<br>";
    
    echo "Тип на файла: ".$HTTP_POST_FILES['userfile']['type']."<br />";
    
    } else { echo "<b>Файлът не е картинка!</b><br />"; exit; }
    
    }
    
    $my_file = $HTTP_POST_FILES['userfile']['name'];
    
    ?>

    Урока е авторски – аз съм писал скриптовете, с изключение на скрипта за ъплоуд и за resize и е написан специално за Web-tourist!

    Enjoy!

    Оставете коментар