• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP - Lokalizacja kilka plików wprowadzone do jednego pola w bazie danych

0 głosów
70 wizyt
pytanie zadane 31 lipca 2017 w PHP, Symfony, Zend przez nielotweb Bywalec (2,020 p.)

Mam sobie formularz w którym widnieje input z plikami. (multi) I w PHP mam ten input przechwycony. W wielkim skrócie bez rozpisywania się chcę przykładowo: Biorę 4 pliki w formularzu i chcę zeby ich lokalizacja (po przeniesieniu) została zapisana w danym polu w bazie danych po przecinku każdy.

Problem tkwi w tym że lokalizacja zapisuje się w danym polu ale tylko pierwszego pliku, a nie wszystkich..

W jaki sposób mogę to zrobić?

( W skrócie: Biorę pliki, klikam wyślij w formularzu. Lokalizacja tych plików została zapisana w polu po przecinku, np. uploads/png1.png, uploads/pn2.png, uploads/png3.png itd.. )

Z góry dziękuję.

A no i oczywiście cały kod:

  if( !empty($_FILES['files']['name'][0]) ) {

      //Zmienne formularza
      $files = $_FILES['files'];
      $thumb = $_FILES['thumbnail'];
      $text = $_POST['add-project_text'];
      $h2text = $_POST['add-project_name'];

      //Dozwolone pliki
      $allowed = array('txt', 'jpg', 'jpeg', 'png', 'gif', 'svg', 'psd');

      foreach ($files['name'] as $position => $file_name) {

        //Wyciągnięcie parametrów z plików
        $file_tmp = $files['tmp_name'][$position];
        $file_size = $files['size'][$position];
        $file_error = $files['error'][$position];

        //Dla zdjęć ( wyciągniecie rozszerzenia pliku )
        $file_ext = explode('.', $file_name);
        $file_ext = strtolower(end($file_ext));
        $datenow = date('Y-m-d H:i:s');

          //Dla miniaturki
          $file_extThumb = explode('.', $thumb['name']);
          $file_extThumb = strtolower(end($file_extThumb));

        //Jeżeli rozszerzenie jest prawidłowe
        if (in_array($file_ext, $allowed)) {

          //Jeżeli plik nie ma żadnych błędów
          if($file_error === 0) {

              //Jeżeli plik nie jest większy niż 15MB
              if($file_size <= 15728640) {

                  //Jeżeli folder uzytkownika istnieje
                  if(file_exists('uploads/' . $_SESSION['login'])) {

                  }
                  //Jeżeli nie, stwórz go.
                  else {
                    mkdir('uploads/' . $_SESSION['login']);
                  }

                      //Dla zdjęć
                      $file_new_name = uniqid('', true) . '.' . $file_ext;
                      //Dla miniaturki
                      $file_new_nameThumb = 'Thumbnail.' . uniqid('', true) . '.' . $file_extThumb;

                      //Dla zdjęć
                      $file_destination = 'uploads/' . $_SESSION['login'] . '/' . $file_new_name;
                      //Dla miniaturki
                      $file_destinationThumb = 'uploads/' . $_SESSION['login'] . '/' . $file_new_nameThumb;

                      //Jeżeli wszystko jest ok, przenieś go do odpowiedniego folderu
                      if(move_uploaded_file($file_tmp, $file_destination)) {

                        //Jeżeli wszystko jest ok, przenieś go do odpowiedniego folderu
                        if(move_uploaded_file($thumb['tmp_name'], $file_destinationThumb)) {

                          $sqlSTM = $dbh->prepare(" INSERT INTO projects (post_content, post_images, post_image, post_date) VALUES (:post_content, :post_images, :post_image, :post_date) ");
                          $sqlSTM->bindParam(":post_content", $text, PDO::PARAM_STR);
                          $sqlSTM->bindParam(":post_images", $file_destination, PDO::PARAM_STR);
                          $sqlSTM->bindParam(":post_image", $file_destinationThumb, PDO::PARAM_STR);
                          $sqlSTM->bindParam(":post_date", $datenow, PDO::PARAM_STR);

                          $_SESSION['UploadedSuc'] = 'Udało się! Dodano nowy projekt!';

                          }
                      }

              } else {

                $file_size_r = $file_size / 1000000;

                echo 'Wystąpił błąd przy dodawaniu pliku, prawdopodobnie plik jest za duży. Maksymalna wielkość pliku to 15MB. Twój plik: ' . number_format($file_size_r, 0) . 'MB';

              }

          } else {

            echo 'Wystąpił błąd przy dodawaniu pliku: ' . $file_error;

          }

        } else {

          echo 'To rozszerzenie: <b>' . $file_ext . '</b> jest niedozwolone.';

        }


      }

  }

 

1 odpowiedź

0 głosów
odpowiedź 1 sierpnia 2017 przez nielotweb Bywalec (2,020 p.)
Sorki ze odświeżam, ale może ktoś nie widział a pomoże :v

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
0 głosów
3 odpowiedzi 75 wizyt
pytanie zadane 9 marca 2016 w SQL, bazy danych przez wius2012 Początkujący (310 p.)
0 głosów
2 odpowiedzi 75 wizyt
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

64,898 zapytań

111,368 odpowiedzi

234,329 komentarzy

46,744 pasjonatów

Przeglądających: 193
Pasjonatów: 9 Gości: 184

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...