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

    Галерия с ъплоад

    Автор: miro91

    В този урок ще си направим една галерия с качване на снимки и създаване на thumbnail
    така: Първо си правим таблицата в MySQL-а

    CREATE TABLE `gallery` (
    `id` int(11) NOT NULL auto_increment,
    `title` varchar(40) character set utf8 collate utf8_unicode_ci NOT NULL default '',
    `snimka` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
    `small` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL default '',
    `info` text character set utf8 collate utf8_unicode_ci NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=1 ;

    След това си правим един файл от където ще качваме изображенията.

    <?php
    include "config.php";
    echo '<center>';
    if ($_POST['upload']) {
    $putq = 'upload/'.basename($_FILES['ufile']['name']);
    if (@copy($_FILES['ufile']['tmp_name'], $putq)) {
    list($width, $height, $type) = getimagesize("$putq");
    if ($width > 530) {
    echo "Снимката е прекалено голяма. Снимката не е качена.";
    unlink($putq);
    }
    else {
    function upload_small($tmp_name,$file_type,$path_small){
    if(!file_exists($path_small)){
    if($file_type=="image/pjpeg" or $file_type=="image/jpeg" or $file_type=="image/gif" or $file_type=="image/x-png" or $file_type=="image/png"){//проверка дали файлът е картинка
    list($width,$height) = getimagesize($tmp_name);
    define("WIDTH","150");
    define("HEIGHT","112");
    if($width<WIDTH and $height<HEIGHT){
    move_uploaded_file($tmp_name,$path_small);
    }elseif($width>=WIDTH){
    $new_width= WIDTH;
    $new_height= (int) ($height*$new_width)/$width;
    if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
    $imagecreatefrom="imagecreatefromjpeg";
    }elseif($file_type=="image/gif"){
    $imagecreatefrom="imagecreatefromgif";
    }elseif($file_type=="image/x-png" or $file_type=="image/png"){
    $imagecreatefrom="imagecreatefrompng";
    }
    $image_p=imagecreatetruecolor($new_width, $new_height);
    $image=$imagecreatefrom($tmp_name);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagejpeg($image_p, $path_small, 100);
    }elseif($height>=HEIGHT){
    $new_height= HEIGHT;
    $new_width= (int) ($width*$new_height)/$height;
    if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
    $imagecreatefrom="imagecreatefromjpeg";
    }elseif($file_type=="image/gif"){
    $imagecreatefrom="imagecreatefromgif";
    }elseif($file_type=="image/x-png" or $file_type=="image/png"){
    $imagecreatefrom="imagecreatefrompng";
    }
    
    $image_p=imagecreatetruecolor($new_width, $new_height);
    $image=$imagecreatefrom($tmp_name);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagejpeg($image_p, $path_small, 100);
    }
    }else{ echo 'Файлът не е картинка!'; exit; }
    }else{ echo 'Такъв файл вече съществува!'; exit; }
    }
    define("URL","http://muzei.10bclass.com/");
    $file_name=$_FILES['ufile']['name'];
    $tmp_name=$_FILES['ufile']['tmp_name'];
    $file_type=$_FILES['ufile']['type'];
    $path_small="upload/small/".basename(strtolower($file_name));
    upload_small($tmp_name,$file_type,$path_small);
    echo '<br><img src="'.$path_small.'" alt=""><br>';
    echo '<br>'.URL.$path_small.'<br>';
    $title = $_POST['title'];
    $bg = $_POST['bg'];
    $en = $_POST['en'];
    $ru = $_POST['ru'];
    $res = mysql_query("INSERT INTO gallery (`title`, `snimka`, `small`, `bg`, `en`, `ru`) VALUES ('$title', '$putq', '$path_small', '$bg', '$en', '$ru')") or die(mysql_error());
    echo "Снимката е добавена успешно.<br>
    <a href='pro.php?page=addpic'>Обратно</a>";
    }
    } else {echo "Снимката не е качена";}
    }
    else
    {
    if(!function_exists("gd_info")){
    echo 'GD Graphics Library не е инсталирана на този сървър!';
    }else{
    echo '
    <form action="" method="post" enctype="multipart/form-data">
    <table><tr><td valign="top">
    Заглавие: </td><td><input type="text" name="title" class="search"></td>
    <tr><td valign="middle">Описание</td><td><textarea name="opisanie" rows="4" cols="20" class="search"></textarea></td></tr></table>
    <input type="file" name="ufile" class="search"><br><br>
    <input type="submit" name="upload" value="Качи" class="search">
    </form>
    <a href="pro.php">Назад</a>
    ';
    }
    }
    echo '
    </center>
    </body>
    </html>
    ';
    ?>

    Променяте на 8 ред дължината на снимката или нейния width това е за голямата.
    Сега файла gallery.php

    <?php
    include "config.php";
    $broinastranica = 9;
    
    $pageNum = 1;
    
    if(isset($_GET['page']))
    {
    $pageNum = $_GET['page'];
    }
    //тука определяме кои редове ще се показват - примерно ако $_GET['page']=2
    // ще покаже от 20 до 40-ти ред.
    $redove = ($pageNum - 1) * $broinastranica;
    //заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page']
    $query = " SELECT * FROM gallery ORDER BY id DESC LIMIT $redove, $broinastranica";
    $result = mysql_query($query) or die('Error, query failed');
    
    while($row = mysql_fetch_array($result))
    {
    echo "<a href='view=$row[id]'><img class='gallery' src='$row[small]' alt='$row[info]'></a>";
    }
    // проверяваме таблицата колко редове има
    $query = "SELECT COUNT(snimka) AS numrows FROM gallery";
    $result = mysql_query($query) or die('Error, query failed');
    $row = mysql_fetch_array($result, MYSQL_ASSOC);
    $numrows = $row['numrows'];
    
    
    $maxPage = ceil($numrows/$broinastranica);
    
    $self = $_SERVER['PHP_SELF'];
    $nomeranastranici = '';
    echo "<div class='paging' align='center'>";
    for($page = 1; $page <= $maxPage; $page++)
    {
    if ($page == $pageNum)
    {
    $nomeranastranici .= " $page ";
    }
    else
    {
    $nomeranastranici .= " <a href=\"index.php?page=$page\">$page</a> ";
    }
    }
    
    if ($pageNum > 1)
    {
    $page = $pageNum - 1;
    $predishna = " <a href=\"index.php?page=$page\">$prev</a> ";
    
    $parva = " <a href=\"index.php?page=1\">$first</a> ";
    }
    else
    {
    $predishna = ' ';
    $parva = ' ';
    }
    if ($pageNum < $maxPage)
    {
    $page = $pageNum + 1;
    $sledvashta = " <a href=\"index.php?page=$page\">$next</a> ";
    
    $posledna = " <a href=\"index.php?page=$maxPage\">$last</a> ";
    }
    else
    {
    $sledvashta = ' ';
    $posledna = ' ';
    }
    echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna;
    echo "</div>";
    ?>

    Тук променяте по колко картинки на страница да се показват.
    Последния файл който ви трябва е config.php

    <?php
    $dbhost="localhost";
    $dbusername="imeto";
    $dbpassword="passa";
    $dbname="nh";
    $connect = mysql_connect($dbhost, $dbusername, $dbpassword);
    $db = mysql_select_db($dbname,$connect) or die ("Не мога да избера БД");
    mysql_query("SET NAMES cp1251");
    ?>

    тук попълвате вашите данни.

    Това е всичко.
    Урока е подготвен специално за www.web-tourist.net и забранявам преписването му в други сайтове.

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