PHP 只上传前两张图片

时间:2021-01-30 20:03:41

标签: php

我正在尝试将图像上传到我的数据库,但它的表现真的很奇怪,因为它只上传了前两个图像。我不知道为什么是前两个而不是第一个。代码有点长,因为我正在执行另一个插入,然后插入图像。它是由 AJAX 调用请求的,不知道它是否重要。这是它的样子:

if ($ok) {
    //IMAGE UPLOAD
    $filesize_error = 0;
    $filesTempName = $_FILES['images']['tmp_name'];
    $counted = count($filesTempName);
    $allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);

    if ($counted > $maxImage) {
        $errorMsg[] = "Maximum 5 képet lehet feltölteni!";
    } else {
        for ($i = 0; $i < $counted; $i++) {
            if (empty($filesTempName[$i])) {
                $errorMsg[] = "Legalább egy képet ki kell választani!";
            } else {
                $detectedType = exif_imagetype($filesTempName[$i]);
                if ($_FILES["images"]["size"][$i] > $maxSize) {
                    $filesize_error = 1;
                    $errorMsg[] = "Minden képnek 2 Mb-nál kisebbnek kell lennie!";
                } elseif (!in_array($detectedType, $allowed_types)) {
                    $errorMsg[] = "A képek csak PNG/JPG/JPEG/GIF formátumban elfogadottak!";
                } elseif ($filesize_error == 0) {

                    if (isset($_POST['mainimage']) && $_POST['mainimage'] != '') {
                        $placeholder = $_POST['mainimage'];
                        $mainimage = 'uploads/' . time() . $placeholder;
                        $stmt->execute();
                        $stmt->close();

                        $productid = $link->insert_id;
                        $statement = $link->prepare("INSERT INTO images(thumbnailimage, productid) VALUES(?, ?)");

                        for ($i = 0; $i < $counted; $i++) {
                            $file = $filesTempName[$i];
                            if (is_uploaded_file($file) && !empty($file)) {
                                $data = "uploads/" . time() . $_FILES["images"]["name"][$i];
                                move_uploaded_file($file, $data);

                                $statement->bind_param("si", $data, $productid);
                                $statement->execute();
                            }
                        }
                        $statement->close();
                        $link->close();
                        $success = true;
                        $_SESSION['successad'] = true;
                    } else {
                        $errorMsg[] = "Kérjük válassza ki a fő képet!";
                        $ok = false;
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

count($_FILES["images"]);

在临时名称之前尝试计数,在 $_FILES 上尝试一个 var_dump

var_dump($_FILES);

相关问题