• 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

Hosting forpsi easy 1 pln
0 głosów
112 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ź 285 wizyt
0 głosów
3 odpowiedzi 125 wizyt
pytanie zadane 9 marca 2016 w SQL, bazy danych przez wius2012 Początkujący (330 p.)
0 głosów
2 odpowiedzi 340 wizyt
pytanie zadane 9 grudnia 2017 w SQL, bazy danych przez Samwoja Początkujący (270 p.)

92,111 zapytań

140,769 odpowiedzi

317,755 komentarzy

61,432 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 801p. - Łukasz Eckert
  2. 793p. - Dawid128
  3. 779p. - CC PL
  4. 767p. - TheLukaszNs
  5. 754p. - Eryk Andrzejewski
  6. 749p. - nidomika
  7. 749p. - Michal Drewniak
  8. 746p. - Mikbac
  9. 726p. - Arkadiusz Waluk
  10. 724p. - rucin93
  11. 722p. - sefirek
  12. 715p. - adrian17
  13. 713p. - Henry Saele
  14. 688p. - the Bielsky
  15. 687p. - Adrian Wieprzkowicz
Szczegóły i pełne wyniki

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.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...