• 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

Object Storage Arubacloud
0 głosów
123 wizyt
pytanie zadane 31 lipca 2017 w PHP przez nielotweb Bywalec (2,240 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,240 p.)
Sorki ze odświeżam, ale może ktoś nie widział a pomoże :v

Podobne pytania

0 głosów
1 odpowiedź 300 wizyt
0 głosów
3 odpowiedzi 159 wizyt
pytanie zadane 9 marca 2016 w SQL, bazy danych przez wius2012 Początkujący (330 p.)
0 głosów
2 odpowiedzi 357 wizyt
pytanie zadane 9 grudnia 2017 w SQL, bazy danych przez Samwoja Początkujący (270 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...