Witam, niedawno rozwiązałem jeden problem i od razu natknąłem się na kolejny.
Z tego co mi wiadomo serwer na wykonanie jednego skryptu ma 30 sekund i dlatego stwarza to pewne problemy.
Planuje do mojego formularza dodać możliwość uploadu zdjęć w ilości większej niż 1.
Zatem jeżeli dam możliwość uploadu max 5 zdjęć i jeżeli user będzie wgrywał jednocześnie 5 zdjęć to wtedy serwer nie wyrobi się w czasie (wszystko zależy od łącza oczywiście, ale zakładam czarny scenariusz).
A zatem moje pytanko brzmi jak ten problem rozwiązać ?
Oto kod formularza:
<?
function f_rand($ile) {
for ($i=1; $i<=$ile; $i++)
return $l_rand;
}
function resize($foto, $szerokosc, $folder, $napis) {
$fotos = "./tmp/".$foto;
$mini = $folder."/".$foto;
$img = imagecreatefromjpeg($fotos);
$width = imagesx($img); // szerokosc jpga
$height = imagesy($img); // wysokosc jpga
if ($width > $szerokosc || $height > $szerokosc){
//poziomy / szerokosc
if ($width>=$height) {$width_mini = $szerokosc;
$x = $width/$width_mini;
$height_mini = $height/$x;
$litery_wielkosc = $width/60;}
//pionowy / wysokosc
if ($width<$height) {$height_mini = $szerokosc;
$x = $height/$height_mini;
$width_mini = $width/$x;
$litery_wielkosc = $height/60;}
$img_mini = imagecreatetruecolor($width_mini, $height_mini);
}
else
{
$img_mini = $img;
}
$txt = $napis;
$kolor_tla = imagecolorallocate ( $img, 255, 255, 255 );
imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width, $height);
imagejpeg($img_mini, $mini, 100);
@imagedestroy($img);
@imagedestroy($img_mini);
}
}
if ($_SESSION["zalogowany"]=="tak") {
include('menu.php');
$tresc = $_POST['tresc'];
////////////////////////////////////////
//ustawienie wielkosci zmniejszanych obrazow
$w_1 = 175;
$w_2 = 400;
if ($_FILES){
foreach( $_FILES as $ul_plik )
{
{
$rand = f_rand(3);
$new_name = $rand.".jpg";
$tmp_name = $ul_plik['tmp_name'];
$name = $ul_plik['name'];
copy($tmp_name, './tmp/'.$new_name);
resize($new_name,$w_1,"./img/mini/", "");
resize($new_name,$w_2,"./img/", "");
INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','$rand','$cena')
");
}
else {
INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','nazwa','$cena')
");
}
}
}
<br><div class=\"potwierdzenie\"><center>Ogłoszenie zostało dodane</center>
</div>";
}
$data = date("Y-m-d H:i:s"); <br>
<form action="" method="post" enctype="multipart/form-data" class="uniForm">
<fieldset><legend>Dane Samochodu</legend>
<div class="ctrlHolder">
<label for="foto">Dodaj zdjęcie do ogłoszenia:</label><br>
<input type="file" name="foto"><br>
<label for="marka">Podaj marke samochodu:</label>
<input type="text" name="marka" style="width:100%;" class="textInput small" />
<label for="model">Podaj model samochodu:</label>
<input type="text" name="model" style="width:100%;" class="textInput small" />
<label for="rocznik">Podaj rocznik samochodu:</label>
<input type="text" name="rocznik" style="width:100%;" class="textInput small" />
<label for="miejsca">Podaj ilość miejsc siedzących:</label>
<input type="text" name="miejsca" style="width:100%;" class="textInput small" />
<label for="klimatyzacja">Klimatyzacja:</label><br>
<select id="" name="klimatyzacja"><optgroup label='Wybierz jedną opcję'><option value='TAK'>TAK</option><option value='NIE'>NIE</option></optgroup></select><br>
<label for="rejestracja">Podaj rejestracje samochodu*:</label>
<input type="text" name="rejestracja" style="width:100%;" class="textInput small" />
</div></fieldset>
<fieldset><legend>Ogłoszenie</legend>
<div class="ctrlHolder">
<label for="tytul">Podaj tytuł ogłoszenia:</label>
<input type="text" name="tytul" style="width:100%;" class="textInput small" />
<label for="model">Podaj date ogłoszenia:</label>
<input type="text" name="data" style="width:100%;" class="textInput small" value="$data" />
<label for="rocznik">Napisz treść ogłoszenia:</label><br>
<textarea name="tresc" id="editor"></textarea><br>
KONIEC;
?>
<script type="text/javascript">
//<![CDATA[
CKEDITOR.replace( 'editor',
{
fullPage : true
});
//]]>
</script>
<?
<label for="cena">Podaj cene (zł):</label>
<input type="text" name="cena" style="width:100%;" class="textInput small" />
</div></fieldset>
<fieldset><legend>Informacje dodatkowe</legend>
<div class="ctrlHolder">
<p class="label">
Wybierz rodzaj ogłoszenia, oraz czy ma on zostać wyświetlony na stronie
</p><table width="100%">
<tr><td align="middle"><ul class="alternate">
<li><label for="rodzaj" align="top">Rodzaj <select id="" name="rodzaj"><optgroup label='Wybierz jedną opcję'><option value='wynajem_autobusow'>Wynajem autobusów</option><option value='wynajem_busow'>Wynajem busów</option><option value='sprzedaz_busow'>Sprzedaż busów</option><option value='transport_ludzi'>Transport ludzi</option></optgroup></select></label></li></td><td align="middle">
<li><label for="stan" align="middle">Stan <select id="" name="stan"><optgroup label='Aktualne'><option value='1'>Ogłoszenie widoczne</optgroup><optgroup label='Wybierz jedną opcję'><option value='1'>Ogłoszenie widoczne</option><option value='0'>Ogłoszenie niewidoczne</option></optgroup></select></label></li>
</ul></td></tr></table>
</div></fieldset>
<div class="buttonHolder">
<input type="submit" value=" wyślij" class="primaryAction" />
</div>
KONIEC;
}
else {
echo "<div class=\"potwierdzenie\"><center>Proszę się zalogować!</center> </div>";
}
?>