Проблем със запис.

ами преработих го малко
при мен горе-долу работи вече ти ще си го дообработиш:
Код:
<?
$number = "5";
define ("MAX_SIZE","100");
define ("WIDTH","150");
define ("HEIGHT","100");
function make_thumb($img_name,$filename,$new_w,$new_h)
{
$ext=getExtension($img_name);
if(!strcmp("jpg",$ext) || !strcmp("jpeg",$ext))
$src_img=imagecreatefromjpeg($img_name);
if(!strcmp("png",$ext))
$src_img=imagecreatefrompng($img_name);
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
$ratio1=$old_x/$new_w;
$ratio2=$old_y/$new_h;
if($ratio1>$ratio2) {
$thumb_w=$new_w;
$thumb_h=$old_y/$ratio1;
}
else {
$thumb_h=$new_h;
$thumb_w=$old_x/$ratio2;
}
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
if(!strcmp("png",$ext))
imagepng($dst_img,$filename);
else
imagejpeg($dst_img,$filename);
imagedestroy($dst_img);
imagedestroy($src_img);
}
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;


if ($_REQUEST['submitted']){ 
for ($i=0; $i<$number; $i++) {

if ($img_name[$i])
{
$filename = stripslashes($img_name[$i]);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png"))
{
echo '<h1>Не известно разширение!</h1>';
$errors=1;
}
else
{
$size=getimagesize($img[$i]);
$sizekb=filesize($img[$i]);
if ($sizekb > MAX_SIZE*10240)
{
echo '<h1>Надвишен е лимитът за размер!</h1>';
$errors=1;
}
$newname="upload/".$img_name[$i];
$copied = copy($img[$i], $newname);
if (!$copied)
{
echo '<h1>Копирането не е успешно!</h1>';
$errors=1;
}
else
{
$thumb_name='upload/thumb_'.$img_name[$i];
// call the function that will create the thumbnail. The function will get as parameters
//the image name, the thumbnail name and the width and height desired for the thumbnail
$thumb=make_thumb($newname,$thumb_name,WIDTH,HEIGHT);
echo "<h1>Малкото копие е успешно създадено!</h1>";
echo '<img src="'.$thumb_name.'">';
}} }  }}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>PHP Създаване на малко копие</title>
</head>
<body>
<form name="newad" method="post" enctype="multipart/form-data" action="">
<table>
<?
for ($j=0; $j<$number; $j++) {
?>
<tr><td><input type=file name=img[] size=30></td></tr>
<?
}
?>
<input type="hidden" name="submitted" value="true">
<tr><td><input name="Submit" type="submit" value="Качи"></td></tr>
</table>
</form>
</body>
</html>
П.П $img[$i] съдържа tmp_name-а , $img_type[$i] - типът , $img_size[$i] - размера и тн.
ако имаш въпроси питай .. бтв имам скрипт който създава динамично тия thumbs.. ако искаш ще ти го дам може да ти е по-лесно с него.
 
Разглеждам го и ще го пробвам!
Много ти благодаря за усилията!

ПП: какво значи горе-долу работи? Да не е като "малко бременен"? ;)

Хубава вечер!

Ако имам въпроси, ще питам!

Още веднъж, благодаря!
 
Тези дето ти го предложиха baf и Slavei пробва ли ги?
Ако не е динамично може да сложиш 3-4 полета за upload с различно име
на данните.

Примерно:

<input type="file" name="file">
<input type="file" name="file1">
<input type="file" name="file2">

и да ги обработиш после по отделно.

ЩЕ се появят на потребителя 3 полета за upload и готово.
После ти качваш файловете по отделно.
Всяко поле си има различно име.
 
admin каза:
Тези дето ти го предложиха baf и Slavei пробва ли ги?
Ако не е динамично може да сложиш 3-4 полета за upload с различно име
на данните.

Примерно:

<input type="file" name="file">
<input type="file" name="file1">
<input type="file" name="file2">

и да ги обработиш после по отделно.

ЩЕ се появят на потребителя 3 полета за upload и готово.
После ти качваш файловете по отделно.
Всяко поле си има различно име.

@админ проблемът е, че не знае колко ще са полетата.

@сизиф, разочароваш ме. Мислех, че си царят на масивите ;)

ей това работи:

Код:
<? 
if(isset($_POST['Submit'])) {
print_r ($_FILES['image']);
}
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<title>PHP Създаване на малко копие</title> 
</head> 
<body> 
<form enctype="multipart/form-data" method="post" action="">
<table> 
<input type="hidden" name="MAX_FILE_SIZE" value="1048576000">
<tr><td><input type="file" name="image[]" ></td></tr> 
<tr><td><input type="file" name="image[]" ></td></tr> 
<tr><td><input name="Submit" type="submit" value="Качи"></td></tr> 
</table> 
</form> 
</body> 
</html>
Нямам опит с двумерни масиви, и в момента не знам как да го обходя, без да знам колко колко реда е... оставям това на теб.
Трябва да си сметнеш и колко да ти MAX_FILE_SIZE. Аз съм го налучвал... И един съвет, не слагай много инпути. 3-4-5 максимум
 
Нямам време да го мисля как ще стане "като хората" но...
Това което сте дали като идей може да се тества и пробва по различни начини.

Най лесно ще е да пита потребителя "Колко картинки ще качвате?".
Един <select> му пускаш от 1 до 10 и той си избира.

След като си избере му пускаш толкова input-и .
Ако е избрал 8 му правиш един цикъл за листване на 8 input-a с различни имена:
<input type="file" name="file0">
<input type="file" name="file1">
<input type="file" name="file2">
<input type="file" name="file3">
<input type="file" name="file4">
<input type="file" name="file5">
<input type="file" name="file6">
<input type="file" name="file7">
<input type="hidden" name="filebroi" value="8">

Скрипта който ще ги качва ще знае колко са input-ите (filebroi)
и как се казват name="file0" name="file1" .....

И после с един цикъл ги качва едно по едно.
Проверява ги дали не са празни и т.н.

Ако питаш мен направо цикъла да качва файловете (от 0 до 9)
и само да проверява дали съдържат данни или не .
Ako "да" чак тогава функцията за upload.

Пробвай sizif.
 
@admin така е лесно, ама мен примерно не ми харесва по този начин.

Пък и до колкото съм го разбрал той иска да има едно бутонче отстрани където като клика и да се появява нов ред.

Нещо такова:
http://mredkj.com/tutorials/tablebasics5.html
само, че с инпут поле тип файл
 
admin каза:
Още по-добре.
Само да се ограничат по някакъв начин до 10 (примерно).

ммм 10 са много. Че те телефоните вече правят по 1 МБ снимки... пък от сапунерките са около 2 МБ... да ги осредним на 15 МБ... дори и с добра връзка, ще отнеме време, през което средностатистическия потребител, ще реши, че нещо не е направил както трябва и ще кликне на back или Бог знае какво... ;)
 
Здравейте!

Виждам, че всички сте се включили по темата...
Извинявайте, трябваше да напиша, че Бафиту реши проблема. В онзи момент не бях много сигурен, а после ми спря нета и влизам едва сега... Кода на Бафиту работи, а аз си го нагодих към нуждите... Засега нямам други питания, но може би ще изскочат едно-две за свързани таблици в БД...

Благодаря, че реагирахте своевременно!

Успешен ден/нощ!

ПП: след всички напъни с готови Джаваскриптове, все повече съм убеден, че простичките неща са за предпочитане :)
 

Back
Горе