PHP - 数据库中一个字段的多个文件的路径

时间:2017-08-01 11:27:17

标签: php mysql database image file

我有一个带有文件选择的表单。我希望将所选文件的路径保存在数据库中的单个字段后的小数点后面。我遇到的问题是只保存了第一个选定的文件,我想在一个字段中保存所有小数位。例如uploads / 1.png,uploads / 2.png,uploads / 3.png等..(在PHP中)

我怎样才能做到这一点?

代码:

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'])) {

               } else {
                  //Jeżeli nie, stwórz go.
                  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.';
    }
}

我希望将这些文件的路径保存在变量&#34;:post_images&#34;之下。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

// Saving the urls
$post_images = json_encode([$url1, $url2, $url3]);

// And for getting the urls
$post_images = json_decode($data['urls']);