Thumbnail на по-големи от...

efrdimitrov

Registered
Мъчи ме един проблем от много време, става въпрос за галерията ми с снимки.Искам при самото качване ако снимката е по-голяма от определена ширина например 1000px да се преоразмери на 1000px. разбира се да се запази пропорцията. Рових се къде ли и не и не успях да се справя.Ето кода който използвам за качването:
PHP:
$folder = 'upload/';

/*1*/$filename1 = $_FILES['file1']['name'];    $filesize1 = $_FILES['file1']['size'];
$tmpname_file1 = $_FILES['file1']['tmp_name'];    $file_type1 = $_FILES['file1']['type'];
/*2*/$filename2 = $_FILES['file2']['name'];    $filesize2 = $_FILES['file2']['size'];
$tmpname_file2 = $_FILES['file2']['tmp_name'];    $file_type2 = $_FILES['file2']['type'];
/*3*/$filename3 = $_FILES['file3']['name'];    $filesize3 = $_FILES['file3']['size'];
$tmpname_file3 = $_FILES['file3']['tmp_name'];    $file_type3 = $_FILES['file3']['type'];

$rand_file_name1 = NULL;  $rand_file_name2 = NULL;  $rand_file_name3 = NULL;

if ((!empty($filename1) && $filesize1 > '1048576') && (!empty($filename2) && $filesize2 > '1048576') &&
(!empty($filename3) && $filesize3 > '1048576')) { echo "<center><font size='4' color='8a1717'><b>Сминките:<br><br> 1 \"$filename1\" <br><br>
2 \"$filename2\" <br><br> 3 \"$filename3\" <br><br> са с по-големи размери,
 максимален размер на една снимка 1mb. <br><br> Върнете се назад.</b></font></center>"; exit;}

elseif ((!empty($filename1) && $filesize1 > '1048576') && !empty($filename2) && $filesize2 > '1048576') { echo "<center><font size='4'
 color='8a1717'><b>Сминките: <br><br> 1 \"$filename1\" <br><br> 2 \"$filename2\" <br><br> са с по-големи размери, максимален размер на
една снимка 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif ((!empty($filename1) && $filesize1 > '1048576') && !empty($filename3) && $filesize3 > '1048576') { echo "<center><font size='4'
 color='8a1717'><b>Сминките: <br><br> 1 \"$filename1\" <br><br> 3 \"$filename3\" <br><br> са с по-големи размери, максимален размер на
една снимка 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif ((!empty($filename2) && $filesize2 > '1048576') && !empty($filename3) && $filesize3 > '1048576') { echo "<center><font size='4'
 color='8a1717'><b>Сминките: <br><br> 2 \"$filename2\" <br><br> 3 \"$filename3\" <br><br> са с по-големи размери, максимален размер на
една снимка 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif (!empty($filename1) && $filesize1 > '1048576') { echo "<center><font size='4' color='8a1717'><b>Сминка 1 \"$filename1\" e с по-голям 
размер, максимален размер 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif (!empty($filename2) && $filesize2 > '1048576') { echo "<center><font size='4' color='8a1717'><b>Сминка 2 \"$filename2\" e с по-голям 
размер, максимален размер 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif (!empty($filename3) && $filesize3 > '1048576') { echo "<center><font size='4' color='8a1717'><b>Сминка 2 \"$filename3\" e с по-голям 
размер, максимален размер 1mb.<br><br>Върнете се назад.</b></font></center>"; exit; }

elseif($email == NULL || $tel == NULL || $text == NULL || $grad == NULL || $kategoriq == NULL) {
echo "<center><font color='9a1111' size='5'><b>Моля попълнете задължителните полета!<br><br>Върнете се назад.</b></font></center>"; exit; }
else {
if (!empty($filename1)) { $rand_file_name1 = (1).time();  $newfile_name = $rand_file_name1.$filename1;
$upload = move_uploaded_file($tmpname_file1, $folder.$rand_file_name1); }
if (!empty($filename2)) { $rand_file_name2 = (2).time();  $newfile_name = $rand_file_name2.$filename2;
$upload = move_uploaded_file($tmpname_file2, $folder.$rand_file_name2); }
if (!empty($filename3)) { $rand_file_name3 = (3).time();  $newfile_name = $rand_file_name3.$filename3;
$upload = move_uploaded_file($tmpname_file3, $folder.$rand_file_name3); }

$sql = "INSERT INTO publikuvai
(rand_file_name1, rand_file_name2, rand_file_name3, kategoriq, text, ime, tel, grad, cena, PE, data, email, ip) VALUES 
('$rand_file_name1', '$rand_file_name2', '$rand_file_name3', '$kategoriq', '$text',  '$ime', '$tel', '$grad', '$cena', '$PE', '$data',
'$email', '$ip')";
mysql_query($sql) or die (mysql_error());
header("LOCATION: nova.php?id=$id");
}
}/* SUBMITA */

$result = mysql_query ("SELECT * FROM `publikuvai` ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_assoc ($result);

echo"<center><span class='obr'>Вие публикувахте вашата обява, тя ще бъде разгледана до 48 часа<br>
 и ако отговаря на условията, ще бъде публикувана в сайта и<br> 
 ще получите имейл с линк към нея.Благодарим ви.</span></center><br /><br />";

echo "<center>";	
foreach($row as $k=>$v) {
     if($k=='rand_file_name1' or $k=='rand_file_name2' or $k=='rand_file_name3') {
       if(strlen($v) > 9) {
	
echo "<a href='upload/$v' rel='thumbnail'><img src='upload/$v' border='1' width='200px'></a>    "; } } }
echo"</center>";

Благодаря на всички.
 
В този урок няма много обяснения според мен и не го разбирам не знам как ще го вградя в моя.
 
Използвай GD libary от PHP, напиши си галерията с него на ново.

http://php.net/manual/en/book.image.php
 
Благодаря и двамата за отговорите, но за жалост не мога да ги разбра.Тези GD libary изобщо не ги разбирам а видео уроците нямат ограничение на ширината. А има ли галерия, която да да показва изображението ако е по голямо от 1000px да го покаже 1000px и да запази пропорциите.
 

Back
Горе