Ъплоад форма за снимки + thumb

Добре пробвах да вградя някоя от системите за ъплоад + thumbnail тук от WT но неми се получава не може ли някой да го направи на тази ъплоад форма

PHP:
<div id="main">
<div class="left">
<div id="menu_head">Качване на файл</div>
<div id="menu_body">
<form method='post' action='' enctype='multipart/form-data'>
<p>
<label><b>Избери снимка:</b><br /></label>
<input type="file" name="file" class="input" />
</p>


<label for="sales"><b>Избери категория:<br /></b> </label>
<select style="background-color: #ececec;" id="sales" name="catid">
<option value="10">Тест-1</option>
<option value="20">Тест-2</option>
</select>

<br /><br />
<p><input type="submit" class="submit" name="upload" value="Качи" /></p>
</form>
	<?php
	if($_POST['upload']) {
		$catid = htmlspecialchars($_POST['catid']);
		$expire = date("d.m.Y");
		$file = $_FILES['file'];
		$tmp_name = $_FILES['file']['tmp_name'];
		$name = $_FILES['file']['name'];
		$format = end(explode(".", $name));
		if($format != "png" && $format != "jpeg" && $format != "jpg" && $format != "JPG" && $format != "PNG") {
			echo "Вие сте избрали файл с непозволен формат!<br />Позволени формати:<b>JPG/JPEG</b>, <b>PNG</b>";
		} else {
			$string = "0123456789qwertyuiopasdfghjklzxcvbnm";
			$new_string = str_shuffle($string);
			$location = "Upload/$new_string.$format";
			move_uploaded_file($tmp_name, $location);
			$run_q = mysql_query("INSERT INTO files VALUES ('', '$location', '$catid', '1', '0', '0', '0', 'Nqma')") or die(mysql_error());
			echo "Снимката е успешно качена!";
		}
	}
	?>    
</div>
</div>

Взех тази ъплоад форма от тази система но пък тя няма преименуване на файловете. :/

http://web-tourist.net/login/login/view.php?st=2419
 
Ако не ти се занимава да разучаваш функциите на GD, използвай готова библиотека. Най-популярната за тази цел е PHPThumb. Ето линк към Basic Usage.

На мястото на move_uploaded_file(...
ще сложиш това:
PHP:
require_once 'path/to/ThumbLib.inc.php';

try {
     // Отваряме снимката в /tmp директорията
     $thumb = PhpThumbFactory::create($tmp_file);
    // Създаваме тъмбчето
     $thumb->resize(100, 100);
    // Запазваме го на диска
     $thumb->save($location);
}
catch (Exception $e) {
     // handle error here however you'd like
}

Би трябвало всичко да работи както трябва :)
 
+1 за мнението на @F1r3Fl3x. Абсолютно елементарно е връзването на тая библиотека. Той ти е дал всичко :)
 
Ето какво ми дава като го направя това.

Warning: require_once(C:\xampp\htdocs\test/PhpThumb.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\test\ThumbLib.inc.php on line 38

Fatal error: require_once() [function.require]: Failed opening required 'C:\xampp\htdocs\test/PhpThumb.inc.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\test\ThumbLib.inc.php on line 38
 
Огледай грешката хубаво какво ти пише:
failed to open stream: No such file or directory
Пише, че файла не може да бъде намерен.
Нали свали и разархивира архивчето от сайта, който ти дадох?
Ето го пак -> http://phpthumb.gxdlabs.com/

Сваляш го, разархивираш го и в require нагласяш пътя правилно и всичко ще ти работи както трябва :)

@idevbg, мерси :D
 
Всичко съм направил както си трябва ето

PHP:
	<?php
	if($_POST['upload']) {
		$catid = htmlspecialchars($_POST['catid']);
		$expire = date("d.m.Y");
		$file = $_FILES['file'];
		$tmp_name = $_FILES['file']['tmp_name'];
		$name = $_FILES['file']['name'];
		$format = end(explode(".", $name));
		if($format != "png" && $format != "jpeg" && $format != "jpg" && $format != "JPG" && $format != "PNG") {
			echo "Вие сте избрали файл с непозволен формат!<br />Позволени формати:<b>JPG/JPEG</b>, <b>PNG</b>";
		} else {
			$string = "0123456789qwertyuiopasdfghjklzxcvbnm";
			$new_string = str_shuffle($string);
			$location = "Upload/$new_string.$format";
			move_uploaded_file($tmp_name, $location);
			
			require_once 'ThumbLib.inc.php';

try {
     // Отваряме снимката в /tmp директорията
     $thumb = PhpThumbFactory::create($tmp_file);
    // Създаваме тъмбчето
     $thumb->resize(100, 100);
    // Запазваме го на диска
     $thumb->save($location);
}
catch (Exception $e) {
     // handle error here however you'd like
}
			
			
			$run_q = mysql_query("INSERT INTO files VALUES ('', '$location', '$catid', '1', '0', '0', '0', 'Nqma')") or die(mysql_error());
			echo "Снимката е успешно качена!";
		}
	}
	?>

просто няма от какво да е ....

Не може ли просто от този урок който съм дал по горе да се вгради в моя код :/
 
Така, има 2 неща, които трябва да бутнеш.
1. В кода, който ти дадох вместо $tmp_file, напиши $tmp_name
2. В първото ми мнение ти казах да заместиш реда move_uploaded_file(...); с моя код, а не да го слагаш под него

След като направиш това, всичко трябва да е наред :)
 
F1r3Fl3x каза:
Така, има 2 неща, които трябва да бутнеш.
1. В кода, който ти дадох вместо $tmp_file, напиши $tmp_name
2. В първото ми мнение ти казах да заместиш реда move_uploaded_file(...); с моя код, а не да го слагаш под него

След като направиш това, всичко трябва да е наред :)


Добре направих всичко както обесни и пак не става. !

Warning: require_once(C:\xampp\htdocs\test/PhpThumb.inc.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\test\ThumbLib.inc.php on line 38

Fatal error: require_once() [function.require]: Failed opening required 'C:\xampp\htdocs\test/PhpThumb.inc.php' (include_path='.;C:\xampp\php\pear\') in C:\xampp\htdocs\test\ThumbLib.inc.php on line 38
 
require_once търси файла PhpThumb.inc.php в директорията test. Грешката идва от това, че той не се намира там... Къде разархивира архива на PHPThumb?

@rombeca, ако не се лъжа не се бърка наклонените черти на коя страна са.
 
Е щом е там, значи няма как да не работи. Да не си ги сложил в някоя подпапка примерно test/phpthumb/PhpThumb.inc.php ?
Няма просто от какво друго да е проблема.
 
F1r3Fl3x каза:
require_once търси файла PhpThumb.inc.php в директорията test. Грешката идва от това, че той не се намира там... Къде разархивира архива на PHPThumb?

@rombeca, ако не се лъжа не се бърка наклонените черти на коя страна са.

Бърка се, и заради тази простотия трябваше да правя едни шашми за да я обърна. В смисъл под Windows XP по подразбиране наклонената черта е \ , а DIRECTORY_SEPARATOR слага / , което води до грешка. Но предполагам @joorkataa не позлва DIRECTORY_SEPARATOR и си слага сам чертата към пътя. И има лесно, нека сложи обратно-наклонена черта и трябва да успее да прочете файловете.
 

Back
Горе