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
 
Start new topic
Odpowiedzi
Wilu88
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


No to w tym drugim zapytaniu przypisz kolumnie obrazek jakąś wartość która będzie zawsze wysyłana gdy nie będzie obrazka.


  1.  
  2. INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
  3.  
  4. VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','obrazek','$cena')
  5.  
  6. ");


W tym wypadku powinien przesłać wartość 'obrazek' do kolumny obrazek.
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: 17.10.2025 - 00:58