Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Upload większej ilości plików, Więcej niż jedna fotka
Barcelona
post
Post #1





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

Ostrzeżenie: (0%)
-----


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:

  1. <?
  2.  
  3.  
  4. function f_rand($ile) {
  5. for ($i=1; $i<=$ile; $i++)
  6. {$l_rand .= dechex(mt_rand());}
  7. return $l_rand;
  8. }
  9.  
  10.  
  11. function resize($foto, $szerokosc, $folder, $napis) {
  12.  
  13. $fotos = "./tmp/".$foto;
  14. $mini = $folder."/".$foto;
  15. if (!file_exists($mini)) {
  16. $img = imagecreatefromjpeg($fotos);
  17. $width = imagesx($img); // szerokosc jpga
  18. $height = imagesy($img); // wysokosc jpga
  19.  
  20. if ($width > $szerokosc || $height > $szerokosc){
  21. //poziomy / szerokosc
  22. if ($width>=$height) {$width_mini = $szerokosc;
  23. $x = $width/$width_mini;
  24. $height_mini = $height/$x;
  25. $litery_wielkosc = $width/60;}
  26.  
  27. //pionowy / wysokosc
  28. if ($width<$height) {$height_mini = $szerokosc;
  29. $x = $height/$height_mini;
  30. $width_mini = $width/$x;
  31. $litery_wielkosc = $height/60;}
  32.  
  33. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  34. }
  35. else
  36. {
  37. $img_mini = $img;
  38. }
  39. $txt = $napis;
  40. $fontpath = realpath('.');
  41. $kolor_tla = imagecolorallocate ( $img, 255, 255, 255 );
  42.  
  43. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width, $height);
  44. imagejpeg($img_mini, $mini, 100);
  45. @imagedestroy($img);
  46. @imagedestroy($img_mini);
  47. }
  48. }
  49.  
  50.  
  51.  
  52. if ($_SESSION["zalogowany"]=="tak") {
  53. include('menu.php');
  54.  
  55. $tytul = mysql_real_escape_string (trim($_POST['tytul']));
  56. $data = mysql_real_escape_string (trim($_POST['data']));
  57. $tresc = $_POST['tresc'];
  58. $stan = mysql_real_escape_string (trim($_POST['stan']));
  59. $rodzaj = mysql_real_escape_string (trim($_POST['rodzaj']));
  60. $marka = mysql_real_escape_string (trim($_POST['marka']));
  61. $model = mysql_real_escape_string (trim($_POST['model']));
  62. $rocznik = mysql_real_escape_string (trim($_POST['rocznik']));
  63. $miejsca = mysql_real_escape_string (trim($_POST['miejsca']));
  64. $klimatyzacja = mysql_real_escape_string (trim($_POST['klimatyzacja']));
  65. $rejestracja = mysql_real_escape_string (trim($_POST['rejestracja']));
  66. $cena = mysql_real_escape_string (trim($_POST['cena']));
  67. $ul_plik = mysql_real_escape_string (trim($_POST['foto']));
  68.  
  69.  
  70. if (strlen($tytul)>2) {
  71.  
  72. ////////////////////////////////////////
  73.  
  74. //ustawienie wielkosci zmniejszanych obrazow
  75. $w_1 = 175;
  76. $w_2 = 400;
  77.  
  78. if ($_FILES){
  79. foreach( $_FILES as $ul_plik )
  80. {
  81. if( is_uploaded_file( $ul_plik['tmp_name'] ) )
  82. {
  83. $rand = f_rand(3);
  84.  
  85. $new_name = $rand.".jpg";
  86. $tmp_name = $ul_plik['tmp_name'];
  87. $name = $ul_plik['name'];
  88.  
  89. copy($tmp_name, './tmp/'.$new_name);
  90.  
  91.  
  92. resize($new_name,$w_1,"./img/mini/", "");
  93. resize($new_name,$w_2,"./img/", "");
  94.  
  95.  
  96. unlink('./tmp/'.$new_name);
  97.  
  98. INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
  99. VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','$rand','$cena')
  100. ");
  101.  
  102.  
  103. }
  104. else {
  105. INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
  106. VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','nazwa','$cena')
  107. ");
  108. }
  109. }
  110.  
  111. }
  112.  
  113.  
  114. echo "
  115. <br><div class=\"potwierdzenie\"><center>Ogłoszenie zostało dodane</center>
  116. </div>";
  117.  
  118.  
  119. }
  120. $data = date("Y-m-d H:i:s");
  121. echo <<<KONIEC
  122. <br>
  123. <form action="" method="post" enctype="multipart/form-data" class="uniForm">
  124.  
  125. <fieldset><legend>Dane Samochodu</legend>
  126. <div class="ctrlHolder">
  127.   <label for="foto">Dodaj zdjęcie do ogłoszenia:</label><br>
  128.   <input type="file" name="foto"><br>
  129.   <label for="marka">Podaj marke samochodu:</label>
  130.   <input type="text" name="marka" style="width:100%;" class="textInput small" />
  131.   <label for="model">Podaj model samochodu:</label>
  132.   <input type="text" name="model" style="width:100%;" class="textInput small" />
  133.   <label for="rocznik">Podaj rocznik samochodu:</label>
  134.   <input type="text" name="rocznik" style="width:100%;" class="textInput small" />
  135.   <label for="miejsca">Podaj ilość miejsc siedzących:</label>
  136.   <input type="text" name="miejsca" style="width:100%;" class="textInput small" />
  137.   <label for="klimatyzacja">Klimatyzacja:</label><br>
  138.   <select id="" name="klimatyzacja"><optgroup label='Wybierz jedną opcję'><option value='TAK'>TAK</option><option value='NIE'>NIE</option></optgroup></select><br>
  139.   <label for="rejestracja">Podaj rejestracje samochodu*:</label>
  140.   <input type="text" name="rejestracja" style="width:100%;" class="textInput small" />
  141.   </div></fieldset>
  142.   <fieldset><legend>Ogłoszenie</legend>
  143. <div class="ctrlHolder">
  144.   <label for="tytul">Podaj tytuł ogłoszenia:</label>
  145.   <input type="text" name="tytul" style="width:100%;" class="textInput small" />
  146.   <label for="model">Podaj date ogłoszenia:</label>
  147.   <input type="text" name="data" style="width:100%;" class="textInput small" value="$data" />
  148.   <label for="rocznik">Napisz treść ogłoszenia:</label><br>
  149.   <textarea name="tresc" id="editor"></textarea><br>
  150. KONIEC;
  151. ?>
  152. <script type="text/javascript">
  153. //<![CDATA[
  154.  
  155. CKEDITOR.replace( 'editor',
  156. {
  157. fullPage : true
  158. });
  159.  
  160. //]]>
  161. </script>
  162. <?
  163. echo <<<KONIEC
  164. <label for="cena">Podaj cene (zł):</label>
  165.   <input type="text" name="cena" style="width:100%;" class="textInput small" />
  166. </div></fieldset>
  167. <fieldset><legend>Informacje dodatkowe</legend>
  168. <div class="ctrlHolder">
  169. <p class="label">
  170.   Wybierz rodzaj ogłoszenia, oraz czy ma on zostać wyświetlony na stronie
  171.   </p><table width="100%">
  172.  
  173.  
  174. <tr><td align="middle"><ul class="alternate">
  175.   <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">
  176.   <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>
  177.   </ul></td></tr></table>
  178.   </div></fieldset>
  179.   <div class="buttonHolder">
  180. <input type="submit" value=" wyślij" class="primaryAction" />
  181. </div>
  182. KONIEC;
  183. }
  184. else {
  185. echo "<div class=\"potwierdzenie\"><center>Proszę się zalogować!</center>
  186. </div>";
  187.  
  188. }
  189.  
  190. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- Barcelona   [MySQL][PHP]Upload większej ilości plików   21.07.2010, 00:23:50
- - evolucja   Przepraszam bardzo, ale co ma czas wgrywania plikó...   21.07.2010, 00:37:35
- - Barcelona   Jak w formularzu wskaże lokalizacje do 5 fotek i w...   21.07.2010, 00:54:51
- - tehaha   jeżeli obawiasz, że obróbka zdjęć może potrwać za ...   21.07.2010, 07:47:56
- - evolucja   Cytat(Barcelona @ 21.07.2010, 01:54:5...   21.07.2010, 10:19:02
- - Barcelona   @evolucja rozumiem o co chodzi. A możecie mi wskaz...   22.07.2010, 11:21:57
- - Wilu88   [PHP] pobierz, plaintext else { mysql_qu...   22.07.2010, 11:37:25
- - evolucja   A po co ci dwa foreachy działające dokładnie tak s...   22.07.2010, 11:39:23
- - Wilu88   A nie prościej zrobić tak: Ujednolicić nazwy inpu...   22.07.2010, 11:54:18
- - Barcelona   @evolucja, ale czy jak usunę pierwszą część to czy...   22.07.2010, 12:07:35
- - evolucja   Cytat(Wilu88 @ 22.07.2010, 12:54:18 )...   22.07.2010, 12:12:55
- - Wilu88   [PHP] pobierz, plaintext <?for( $a=1 ; $a...   22.07.2010, 12:16:24
- - evolucja   #Wilu88 No i po co to? Jaki jest sens przerabiania...   22.07.2010, 12:20:29
- - Wilu88   Kolega poprosił o kod to przedstawiłem, a czy jest...   22.07.2010, 12:22:42
- - Barcelona   @evolucja własnie sprawdziałem to co napisałeś, cz...   22.07.2010, 14:02:27
- - evolucja   Nie chce mi się czytać całego kodu, wybacz. Cały p...   22.07.2010, 15:04:02
- - Barcelona   Tak jak napisałeś w moim notepad++ z którego korzy...   22.07.2010, 15:27:45
- - evolucja   Przecież dałem ci już poprawioną i działającą funk...   22.07.2010, 16:10:00
- - Barcelona   Racja, przepraszam najmocniej Myślałem że wskazuj...   22.07.2010, 17:20:34
- - Wilu88   No to w tym drugim zapytaniu przypisz kolumnie obr...   22.07.2010, 18:10:51
- - Barcelona   @Wilu88 ale ja już mam napisane takie zapytanie [...   22.07.2010, 18:13:56
- - Wilu88   A jakiego typu masz kolumnę która przechowuje nazw...   22.07.2010, 18:16:48
- - Barcelona   typ tabeli jest varchar. Tabela jest dobrze zrobio...   22.07.2010, 18:22:36
- - Wilu88   A jakbyś przed tym zapytaniem zadeklarował zmienną...   22.07.2010, 18:29:28
|- - Barcelona   Cytat(Wilu88 @ 22.07.2010, 19:29:28 )...   22.07.2010, 21:00:28
- - evolucja   Ok wróciłem [PHP] pobierz, plaintext if ($_FI...   22.07.2010, 22:44:35
- - Barcelona   Ciesze się z powrotu twego dałem tak [PHP] pob...   22.07.2010, 23:17:37
- - evolucja   Dlaczego ty wszystko robisz tak jak niepotrzeba D...   23.07.2010, 00:05:50
|- - evolucja   No to może tak [PHP] pobierz, plaintext echo ...   23.07.2010, 14:18:09
- - Barcelona   A ja już tak mam że kombinuje. Cały czas dodaje pu...   23.07.2010, 10:46:43
- - Barcelona   Teraz w drugą stronę: Dodaje się domyślna nazwa ni...   24.07.2010, 05:37:47
- - evolucja   Cholera, a sam nie możesz próbować różnych technik...   24.07.2010, 08:41:45
- - Barcelona   Próbowałem to na mnie krzyczałeś Nie no żartuje, ...   24.07.2010, 13:16:12
- - evolucja   Cholerka, zdecyduj się chłopie. Post temu mówiłeś ...   24.07.2010, 22:38:37
- - Barcelona   Wielkie sorki, błąd z mojej stronki, sprawdziłem w...   25.07.2010, 05:28:59
- - evolucja   A ja jestem wrózką i sam sobie wymyślę jak ta tabl...   25.07.2010, 12:08:38
- - Barcelona   Sorki, $rand nie jest tablicą tylko zmienną. ...   25.07.2010, 15:27:06


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 11:47