Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] multiuploader - zliczanie...
Forum PHP.pl > Forum > Przedszkole
fredzio90
otóż znalazłem bardzo fajny skrypcik... multi uploadera... a po pmojej modyfikacji wygląda on tak:



  1. <?php
  2. $num_files = '3'; // Liczba maxymalna liczba dodanych zdjęć do ogłoszenia  
  3. $size_bytes = '1048576'; // Wielkość zdjecia jakie może być wysłane (w bajtach)
  4. $limitedext = array(".gif",".jpg",".jpeg"); // Dostepne rozszerzenia
  5. $upload_dir = "images/"; // Katalog zrzutu
  6.  
  7. if (!is_dir("$upload_dir")) {
  8. die ("Błąd: Katalog <b>($upload_dir)</b> nie istnieje");
  9.  }
  10.  
  11.  if (!is_writeable("$upload_dir")){
  12. die ("Błąd: Katalog <b>($upload_dir)</b> nie jest zapisywalny, Ustaw CHMOD na 777");
  13.  }
  14.  
  15.  
  16.  for ($i = 1; $i <= $num_files; $i++) {
  17.  
  18.  
  19.  $new_file = $_FILES['file'.$i];
  20.  $file_name = $new_file['name'];
  21.  //zamienia spację ( ) na znak _
  22.  $file_name = str_replace(' ', '_', $file_name);
  23.  $file_tmp = $new_file['tmp_name'];
  24.  $file_size = $new_file['size'];
  25.  
  26.  
  27.  if (!is_uploaded_file($file_tmp)) {
  28. echo "Zdjecie $i ($file_name) nie zaznaczone";
  29. } else {
  30.  
  31. $ext = strrchr($file_name,'.');
  32.  
  33. if (!in_array(strtolower($ext),$limitedext)) {
  34. echo "Zdjęcie Nr. $i: ( $file_name ) złe rozszeżenie. <br>";
  35. } else {
  36.  
  37. if ($file_size > $size_bytes){
  38. echo "Zdjęcia Nr. $i: ($file_name) Nie wysłano.<br />
  39.  Maxymalny rozmiar to <b>". $size_bytes / 1024 ."</b> KB. <br>";
  40. } else {
  41.  
  42. if(file_exists($upload_dir.$file_name)){
  43.  echo "Zdjęcie Nr. $i: ($file_name) znajduje się na serwerze.<br>";
  44. } else {
  45.  
  46. if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {
  47. echo "Zdjęcie $i: ($file_name) Wysłane.<br>";
  48. } else {
  49.  
  50.  echo "Zdjęcie $i: Nie udało się wysłać.<br>";
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }
  57. ?>


i niestety niewiem jak zliczać w nim ile pól z dostępnych $num_files zostało wypełnione i wysłane... bo chcę liczbę wypełnionych formularzy które poprawnie wyślą plik dodać do bazy... tylko niewiem jak ją zliczyć...
kornel-php
Dodaj sobie zmienną $ile_mam, zwiększaj ją o 1 przy każdym powtórzeniu pętli (jeśli pole będzie niepuste) i na końcu (pod pętlą) możesz sobie wypisać (echo, print...) tą zmienną.

O to chodziło?
fredzio90
a jakby to wyglądało w przyrodzie ?
kornel-php
  1. <?php
  2. $ile_mam = 0;
  3.  
  4. // twoja pętla...
  5.  
  6. if(isset($plik)) { $ile_mam++; }
  7.  
  8. // koniec pętli
  9.  
  10. echo 'Przesłano '.$ile_mam.' plików';
  11. ?>


Coś w tą mańkę, daj nazwy zmiennych jakie Ci pasują, rzuć w kod i powinno być ok.

Mam nadzieję, że dobrze zrozumiałem Twój problem winksmiley.jpg
fredzio90
chciałem to sprawdzić ale niewiem czemu, w pętli for zamiast ustawionych 3 pokazuje mi 1 pole formularza, a o to moj kod:


  1. <tr>
  2. <td align="right" valign="top" class="uni_01">Zdjecie:</td>
  3. <td class="uni_01">';
  4. for ($i = 1; $i <= $num_files; $i++) {
  5. echo '<input type="file" name="file'.$i.'><br>';
  6. }
  7. echo ' <input type="hidden" name="MAX_FILE_SIZE" value="'.$size_bytes.'">
  8. </td>
  9. </tr>
drPayton
Tu jest OK, pokaż całość, błąd musi być gdzie indziej. Najwyraźniej nie widzi zmiennej $num_files...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.