Загрузка фотографий

Тема в разделе "PHP", создана пользователем vave, 28 ноя 2011.

Модераторы: latteo
  1. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    383
    Симпатии:
    15
    Всем привет!
    помогите пожалуйста сделать раздел с простенькой галереей,
    нужно что бы можно было закачивать фоток 10, и они автоматический конвертировались бы в превьюшки и размер по больше.
    а так же генерировалось бы название, что бы фотки с одинаковыми названиями не заменяли бы друг друга, или не возникало других проблем, у каждого раздела есть свой "ID"
    вот код,
    PHP:
    <?php
    include_once("bd.php");
    $resultat mysql_query("SELECT * FROM users WHERE id='$_GET[id]'");
    $array mysql_fetch_array($resultat);
    ?>
      <!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">
    <html>
    <head>
    <title>Вкладки на jQuery</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
    <br />
    <div align='center'><h4>Настройки пользователя</h4></div>
      <tr>
        <td> Изменить аватар </td>
        <br>
        <img src='avatars/<?php echo $array['avatar']; ?>'>
     <br>
        <td>
            <form action='save_edit.php' method='post' enctype='multipart/form-data'>
            <input type='file' name='fupload' size='8'>
            <input type='submit' name='submit' value='Изменить'>
            </form>
        </td>
      </tr>
    <div class="tabs">
      <!-- вкладки -->
      <ul class="tabNavigation">
        <li><a href="#one">Первая</a></li>
        <li><a href="#two">Вторая</a></li>
        <li><a href="#three">Третья</a></li>
        <li><a href="#four">Четвертая</a></li>    
      </ul>
      <!-- текст вкладок -->
      <div id="one">
            <form action='save_edit.php' method='post'>
            <textarea name='name' type='text'><?php echo $array['name_user']; ?></textarea>
            <input type='submit' name='submit' value='Изменить'>
            </form>
      </div>
      <div id="two">
            <form action='save_edit.php' method='post'>
                <textarea name='lastname' type='text'><?php echo $array['lastname']; ?></textarea>
            <input type='submit' name='submit' value='Изменить'>
            </form>
      </div>
      <div id="three">
            <form action='save_edit.php' method='post'>
            <textarea name='country' type='text'><?php echo $array['country']; ?></textarea>
            <input type='submit' name='submit' value='Изменить'>
            </form>    
      </div>
      <div id="four">
             <form action='save_edit.php' method='post'>
            <textarea name='city' type='text'><?php echo $array['city']; ?></textarea>
            <input type='submit' name='submit' value='Изменить'>
            </form>
      </div>
    </div>
    </body>
    </html>
    <p>
            </body>
    </html>
    <?php
    if(isset($login) AND isset($password))
            echo 
    "<strong>Edite Zone</strong>";
    else{
    print <<<HERE
    <table>
    Вход:
    <br>
    <br>
          <form action="login.php" method="POST">
          <tr>
          <td>Логин:</td>
          <td><input type="text" name="login" ></td>
          </tr>
          <tr>
          <td>Пароль:</td>
          <td><input type="password" name="password" ></td>
          </tr>
          <tr>
          <td colspan="2"><input type="submit" value="OK" name="submit" ></td>
          </tr>
          </form>
          </table>
    <a href="registration.php">Регистрация</a><a href="password.php">Восстановление пароля</a>
    HERE;
    }
    ?>
    Еще было бы замечательно, если превьюшки обрезались бы автоматический при загрузке на сервер, и все края были ровными.
     
  2. 94Hours

    94Hours Постоялец

    Регистр.:
    23 ноя 2011
    Сообщения:
    57
    Симпатии:
    8
    На JQuery есть готовое решение, если потерпишь, то завтра в офисе гляну. о.к.?
     
  3. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    383
    Симпатии:
    15
    Конечно! буду очень благодарен!!!

    я еще немного уточню тему,
    есть сайтик, там регистрируются пользователи, у каждого пользователя свой ID

    и есть раздел со страничкой где каждый пользователь может редактировать информацию о себе, edit.php код этого файла в первом сообщении, и в этом файле нужно что бы каждый пользователь мог загрузить себе на страницу несколько фотографий.

    я так пологою нужно будет создавать новую таблицу в MySQL
     
  4. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    по поводу ресайза - держите

    PHP:
    //функция для ресайза картинок
    function image_resize(
        
    $source_path
        
    $destination_path
        
    $newwidth,
        
    $newheight FALSE
        
    $quality 80 // качество для формата jpeg
        
    ) {

        
    ini_set("gd.jpeg_ignore_warning"1); // иначе на некотоых jpeg-файлах не работает
        
        
    list($oldwidth$oldheight$type) = getimagesize($source_path);
        
        switch (
    $type) {
            case 
    1$typestr 'gif' ;break;
            case 
    2$typestr 'jpeg'; break;
            case 
    3$typestr 'png'; break;
        }
        
    $function "imagecreatefrom$typestr";
        
    $src_resource $function($source_path);
        
        if (!
    $newheight) { $newheight round($newwidth $oldheight/$oldwidth); }
        elseif (!
    $newwidth) { $newwidth round($newheight $oldwidth/$oldheight); }
        
    $destination_resource imagecreatetruecolor($newwidth,$newheight);
        
        
    imagecopyresampled($destination_resource$src_resource0000$newwidth$newheight$oldwidth$oldheight);
        
        if (
    $type 2) { # jpeg
            
    imageinterlace($destination_resource1); // чересстрочное формирование изображение
            
    if ($qualityimagejpeg($destination_resource$destination_path$quality);
            else 
    imagejpeg($destination_resource$destination_path);
        }
        else { 
    # gif, png
            
    $function "image$typestr";
            
    $function($destination_resource$destination_path);
        }
        
        
    imagedestroy($destination_resource);
        
    imagedestroy($src_resource);
    }


    пример использования:

    PHP:
    image_resize ($old_image$small_image100 );//делаем превью в 100 пикселов
    image_resize ($old_image$big_image400 );//делаем картинке ширину 400 пикселов
     
  5. vave

    vave

    Регистр.:
    23 июн 2007
    Сообщения:
    383
    Симпатии:
    15
    а как сделать что бы это работало по ID, через бд?
     
  6. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    что "это"?
    ресайз?

    я же показал пример использования, если совсем непонятно то перевожу с пхп на русский:
    image_resize (исходное кортинГо, новое кортинГо, размер );
    т.е. дергаете из базы "исходное кортинГо" и ресайзите сколько угодно...