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

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
Всем привет!
помогите пожалуйста сделать раздел с простенькой галереей,
нужно что бы можно было закачивать фоток 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;
}
?>

Еще было бы замечательно, если превьюшки обрезались бы автоматический при загрузке на сервер, и все края были ровными.
 
На JQuery есть готовое решение, если потерпишь, то завтра в офисе гляну. о.к.?
 
Конечно! буду очень благодарен!!!

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

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

я так пологою нужно будет создавать новую таблицу в MySQL
 
по поводу ресайза - держите

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_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);
    
    if ($type = 2) { # jpeg
        imageinterlace($destination_resource, 1); // чересстрочное формирование изображение
        if ($quality) imagejpeg($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_image, 100 );//делаем превью в 100 пикселов
image_resize ($old_image, $big_image, 400 );//делаем картинке ширину 400 пикселов
 
а как сделать что бы это работало по ID, через бд?
 
что "это"?
ресайз?

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