Заявка за upload.

dorga

Registered
Здравейте! Имам един албум направен с jQuery. Той представлява следното: влизаш в страницата имаш няколко картинки, цъкаш на едната и тя се увеличава (повечето от вас знаят за какво става въпрос). Бих искал някой да ми помогне да направя upload страницата, вместо постоянно да си едитвам gallery.php
Малката картинка е с размер 205x130.
Кода е:
Код:
<a class="image" href="asd1.jpg" rel="prettyPhoto[mixed]" >
<span class="rollover"></span>
<img src="asd.jpg" alt=""/></a>
<span class="shadow-pf4"></span>

Благодаря предварително!
 
Освен, че ти трябва станица за ъплоадване трябва да може да се генерират снимките и в gallery.php иначе пак трябва да пишеш техните пътища.Мисля,че ако само ти ще качваш снимки то трябва да се ограничи и достъпа до страницата с ъплоудване.Ето какво ти измислих аз :

една страничка където да се логнеш за може да ъплоудваш:

login.php
Код:
<!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>
<title>login</title>
</head>
<body>
<?php
session_start();
if(isset($_POST['login'])) {
	$name=htmlspecialchars(addslashes(trim($_POST['name'])));
	$password=htmlspecialchars(addslashes(trim($_POST['password'])));
	if($name=='dorga' and $password=='123456') {
		$_SESSION['name']=$name;
		$_SESSION['login']='islogged';
		header('Location: upload.php');
		exit;
	}
	else echo '<span style="color:red">Грешно име или парола.</span>';	
}
?>
<form action="" style="width:400px; margin:0 auto; text-align:center;" method="post">
	<label for="name">потребител:</label><br />
	<input type="text" name="name" /><br />
	<label for="name">парола:</label><br />
	<input type="password" name="password" /><br /><br />
	<input type="submit" name="login" value="Влез" />
</form> 
</body>
</html>

друга с която да се отписваш:

logout.php
Код:
<?php
session_start();
session_destroy();
$_SESSION=array();
header('Location: login.php');
exit;

ако си се логнал странцата и за ъплоудване:

upload.php
Код:
<!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>
<title>upload</title>
</head>
<body>
<?php
session_start();
function create_thumb($source,$thumb_width,$thumb_height) {
	$directory=dirname($source);
	$name=basename($source);
	$image=imagecreatefromjpeg($source);
	$width=imagesx($image);
	$height=imagesy($image);
	$new_width=$thumb_width;
	$new_height=$thumb_height;
	$tmp_img=imagecreatetruecolor( $new_width, $new_height );
	imagecopyresized( $tmp_img, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
	imagejpeg( $tmp_img, $directory.DIRECTORY_SEPARATOR.'thumbs'.DIRECTORY_SEPARATOR.$name);
}
if(isset($_SESSION['login']) and $_SESSION['login']=='islogged') { 
echo '<div>Здравей <b>'.$_SESSION['name'].'</b> | <a href="logout.php">Изход</a></div><br />'; 
if(isset($_POST['upload'])) {
	if($_FILES['upload_file'] and is_uploaded_file($_FILES['upload_file']['tmp_name'])) {
		if($_FILES['upload_file']['type']=='image/jpeg' and $_FILES['upload_file']['size'] < 2097152 ) {
				$file_path='gallery'. DIRECTORY_SEPARATOR . strtolower($_FILES['upload_file']['name']);
				if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$file_path)) {
					echo '<span style="color:green">Успешно качване на снимката.</span><br /><br />';
					create_thumb($file_path,205,130);
				}
				else echo '<span style="color:red">Неуспешно качване на снимката.</span><br /><br />';
		   }
		   else echo '<span style="color:red">Невалиден формат на снимката или прекалено голям размер.</span><br /><br />';
	}
	else  echo '<span style="color:red">Неуспешно качване на файла.</span><br /><br />';
}

?>
<form action="" enctype="multipart/form-data" method="post">
	<input type="file" name="upload_file" /><br /><br />
	<input type="submit" name="upload" value="Качи" />
</form>
<?php 
} 
else {
	header('Location: login.php');
	exit;
}
 ?>
</body>
</html>

и последно самата страница със картинките :

gallery.php
Код:
<!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>
<title>Gallery</title>
</head>
<body>
<?php
$pictures=array();
$od=opendir('gallery');
while(false !== ($file = readdir($od))) {
	if ($file!='.' and $file!='..' and $file!='Thumb.db' and $file!='Thumbs.db' and $file!='thumbs') {
          $pictures[]=$file;  
        }
}
closedir($od);
?>

<?php
if(count($pictures)>0) {
	foreach($pictures as $v) {
		echo '<a class="image" href="gallery/'.$v.'" rel="prettyPhoto[mixed]">
		<span class="rollover"></span>
		<img src="gallery/thumbs/'.$v.'" alt="" /></a>
		<span class="shadow-pf4"></span>';
	}
}
else echo 'Няма снимки.';
?>
</body>
</html>

Ами това е, трябва само да си създадеш една папка gallery,в папката където ще сложиш файловете, и в папката gallery една подпака thumbs където ще се създават малките картинки и в gallery.php да си сложиш jquery и нещата които са необходими за скрипта на галерията.Имай предвид също че съм го направил да ъплоудва само jpeg файлове с макс големина 2MB - ако искаш повече трябва промениш байтовете тук в кода както и в php.ini някои настройки. :wink:
 

Горе