Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodanie NIEograniczonej liczby zdjęć do bazy mysql
Forum PHP.pl > Forum > Przedszkole
ob1
Mam plik, który dodaje zdjęcia do bazy. Jest podzielony na zdjęcie główne, oraz "resztę" zdjęć.

Zdjęcia są małe po około 300 kb.

Problem polega na tym, że do bazy wgrywane jest maksymalnie 19 zdjęć i ani jedno zdjęcie więcej. Jak to zmienić, aby dodawać większa ilość zdjęć jednocześnie?

  1. require_once('connect.php');
  2. require_once('cmsy/connect-screen.php');
  3. $pliki = $_FILES['pliki'];
  4. $tytul =trim($_POST['tytul']);
  5. $session = md5($usr.time());
  6. $zdjecie_glowne = $_FILES['zdjecie_glowne']['name'];
  7. $zdjecie_glowne_type = $_FILES['zdjecie_glowne']['type'];
  8. $zdjecie_glowne_size = $_FILES['zdjecie_glowne']['size'];
  9. $zdjecie_glowne = uniqid(rand(), true) . '.JPEG';
  10. if (isset($_POST['submit'])) {
  11. $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  12. if ($_FILES['zdjecie_glowne']['error'] == 0) {
  13.  
  14. $target = GW_UPLOADPATH . $zdjecie_glowne;
  15.  
  16. if ((move_uploaded_file($_FILES['zdjecie_glowne']['tmp_name'], $target)))
  17.  
  18. {
  19. $queryglowne="INSERT INTO galeria VALUES (0,'$tytul','','$zdjecie_glowne','$session','glowne')";
  20.  
  21. mysqli_query($dbc, $queryglowne);
  22. }}
  23. else '<p>Problem z przesłaniem głównego zdjęcia</p>';
  24.  
  25.  
  26. if (isset($pliki['name'])){
  27.  
  28.  
  29.  
  30.  
  31. for($i=0; $i<count($_FILES["pliki"]["name"]); $i++)
  32. {
  33. $filetmp = $_FILES["pliki"]["tmp_name"][$i];
  34. $filename =uniqid(rand(), true) . '.JPEG';
  35. $filepath = '../zdjecia_panel/'.$filename;
  36. move_uploaded_file($filetmp,$filepath);
  37.  
  38.  
  39. if (!$dbc) {
  40. die('Nie można połączyć się z bazą danych: ' . mysql_error());
  41. }
  42.  
  43. $pliki = $_FILES["pliki"]["name"][$i];
  44. $query = "INSERT INTO galeria VALUES (0,'$tytul','$filename','', '$session','reszta')"
  45.  
  46. or die("Zapytanie do niepoprawne");
  47.  
  48. mysqli_query($dbc, $query);
  49. }
  50.  
  51. echo "<script>alert('Zdjęcia zostały dodane')</script>";
  52.  
  53. }
  54. else {
  55. echo '<p class="er">Wystąpił problem przy przesyłaniu zdjęć.</p>';
  56. }
  57. mysqli_close($dbc);
  58. }
  59.  
  60.  
SmokAnalog
Co masz w $_FILES po wysłaniu wielu plików?
ob1
Efekt jest taki, że nie ma znaczenia czy wrzucam 21 zdjęć (przy wielu plikach) czy 30 lub 40 zdjęć. Wyskakuje okno "zdjęcia zostały dodane" i rzeczywiście są dodane do bazy, ale pierwsze 19 wczytanych. Gdzie można określić, aby zostały wczytane wszystkie zdjęcia, a jeżeli nie można to załóżmy maksymalnie 40 zdjęć przy jednej wysyłce? "SmokAnalog" możesz trochę jaśniej, bo niezbyt się orientuję o co się rozchodzi.
SmokAnalog
Na samej górze tego pliku, co ma zapisywać zdjęcia daj:

  1. var_dump($_FILES); exit;


I powiedz co to pokazało.
ob1
wrzuciłem, odpowiedź:

array(0) { }
SmokAnalog
Jeśli puste, to niemożliwe, że zapisuje jakiekolwiek zdjęcia (przy wyborze tych konkretnych plików).
ob1
Z komunikatu na to wygląda, ale dodaje zdjęcie główne i 19 zdjęć dodatkowych / innych.

Dlaczego 19?
SmokAnalog
Jakieś cuda. Jakim cudem te INSERT-y się wykonują, skoro $_FILES jest puste? Źle to testujesz. Wrzuć kilka zdjęć do folderu i zawsze te same wysyłaj.
ob1
Też jest to dla mnie dziwne, ale dodają się tylko pierwsze 19. Dlaczego akurat 19?
ohm
w php.ini masz

  1. ; Maximum number of files that can be uploaded via a single request
  2. max_file_uploads = 20


zmien to na ile tam chcesz i powinno zaczac smigac
ob1
OHM dziękuję za konkretną pomoc. To było to.
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.