Hej wszystkim. Mam pytanie dotyczące uploadu plików na serwer. Napisałem malutki skrypt dla pewnej firmy wywołującej zdjecia. Klijent po zalogowaniu podaje liczbe zdjec do wywołania, pozniej pokazuje sie formularz z "przegladaniem" zdjec, wyborem formatu itd. Po wcisnieciu [Dodaj zdjecia] petla wrzuca pokoleji kazde zdjecie na serwer. I w czym jest problem? Hmm, chciałbym aby kazde zamowienie (nie kazdy plik) zostalo wysłane do bazy danych. Jak narazie to dziala to tak:

- upload pliku
- wyslanie info do bazy
- upload pliku
- wyslanie info do bazy
...
...
itd.

Troszke tego jest, a ja chcialbym zeby wszystki pliki byly wyslane razem jako jeden wpis. Oto załączam kod skryptu:

  1. <?
  2. if(!$session->logged_in){
  3. ?>
  4.  
  5. Strona wymaga logowania !!!
  6.  
  7. <?
  8. }
  9. else{
  10. switch($a)
  11. {
  12. case 1:
  13. echo(&#092;"
  14. <form name=register method=post action=index.php?page=zam&a=2>
  15. <p align=center><b>Podaj ilość zdjęć do wywołania:</b>
  16. <input type=text name=ilosc size=5></p>
  17. <p align=center><input type=submit value=Dalej></p>
  18. </form>
  19. &#092;");
  20. break;
  21.  
  22. case 2:
  23. $uploadNeed = $_POST['ilosc'];
  24. echo(&#092;"
  25. <table border=0 cellpadding=1 width=70%>
  26. <form name=form enctype=multipart/form-data method=post action=index.php?page=zam&a=3>
  27. &#092;");
  28.  
  29. for($x=0;$x<$uploadNeed;$x++){
  30. echo(&#092;"
  31. <script language=JavaScript>
  32.  
  33. function WstawPodglad$x()
  34. { 
  35.  document.podglad$x.src='FILE:///'+document.form.upfile$x.value;
  36.  document.form.sciezka$x.value=document.form.upfile$x.value;
  37. }
  38. </script>
  39. <tr>
  40. <td width=34% valign=top>
  41. <input onChange=javascript:WstawPodglad$x(); name=upfile$x type=file>
  42. </td> 
  43. <input type=hidden value= name=sciezka$x>  
  44. <td width=13% valign=top>
  45. <img name=podglad$x src=images/nic.gif width=100 height=80 align=top>
  46. </td>
  47. </tr>
  48. \");
  49. }
  50. echo(\"
  51. <tr>
  52. <td width=100% colspan=6>
  53. <input name=uploadNeed type=hidden value=$uploadNeed>
  54. <center><br><br><input class=button type=submit name=Submit value=Dodaj zdjęcia></center>
  55. <td>
  56. </tr>
  57. </form>
  58. </table>\");
  59. break;
  60.  
  61. case 3:
  62. $store_dir = \"zamowienia/\";
  63. $num_files = $uploadNeed;
  64. if( !is_dir($store_dir) ) 
  65. {
  66.  echo(\"Specified directory is not valid... Exiting\");
  67. for( $x=0; $x < count($HTTP_POST_FILES['upfile'. $x]['name']); $x++ )
  68.  {
  69. @unlink($HTTP_POST_FILES['upfile'. $x]['tmp_name']);
  70.  }
  71.  exit();
  72. }
  73.  
  74. for( $x=0; $x < $num_files; $x++ )
  75. {
  76.  if( @copy( $HTTP_POST_FILES['upfile'. $x]['tmp_name'],
  77. $store_dir.$HTTP_POST_FILES['upfile'. $x]['name'] ) ) 
  78.  {
  79.  
  80. $file_name = $_FILES['upfile'. $x]['name'];
  81. $file_name = stripslashes($file_name);
  82. $file_name = str_replace(\"'\",\"\",$file_name);
  83. $oldumask = umask(0);
  84. chmod(\"zamowienie.txt\", 0644);
  85. umask($oldumask);
  86. $string = \"$x;$file_name;\";
  87. $pliczek=fopen(\"zamowienie.txt\"\"a\");
  88. $string = ereg_replace(\"(r)|(n)\",\"\",$string);
  89. fputs ($pliczek,\"rn$string\",(strlen($string)+2)); 
  90. fclose($pliczek);
  91. }
  92.  else 
  93.  {
  94. echo(\"Upload of \".$HTTP_POST_FILES['upfile'. $x]['name'].\" to \".$store_dir.\" failed!!!!<BR>\");
  95.  }
  96. @unlink($HTTP_POST_FILES['upfile'. $x]['tmp_name']);
  97. }
  98.  
  99. break;
  100. }
  101. }
  102. ?>



Dziekuje za kazda pomoc.