我正在尝试将图像上传到我的数据库,但它的表现真的很奇怪,因为它只上传了前两个图像。我不知道为什么是前两个而不是第一个。代码有点长,因为我正在执行另一个插入,然后插入图像。它是由 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;
}
}
}
}
}
}
答案 0 :(得分:-1)
count($_FILES["images"]);
在临时名称之前尝试计数,在 $_FILES 上尝试一个 var_dump
var_dump($_FILES);