使用普通文件上传(不带多个)时,将文件名写入数据库中所需的列,但上传多个文件(带多个)时,仅将最后一个文件的名称写入数据库中的所需列. 例如:上传一个文件,结果将在数据库中:“img_cat_primer.png”。如果您上传了 2 个文件,那么数据库中只有最后一个上传文件的名称:“img_cat_primer3”,而不是“img_cat_primer2 img_cat_primer3”。如何实现所有标题的记录?
这是代码本身:
foreach($_FILES['img']['tmp_name'] as $key => $tmp_name) {
$imgDir = "../../../img/news/";
$imgName = "img" . "_" . $cat . "_" . time() . "_" . basename($_FILES["img"]["name"][$key]);
$imgFile = $imgDir . $imgName;
$imgUpload = 1;
$imgFileType = strtolower(pathinfo($imgFile, PATHINFO_EXTENSION));
if ($imgFileType != "jpg" && $imgFileType != "png" && $imgFileType != "jpeg") {
echo "Поддерживаются только форматы: png, jpg, jpeg!";
$imgUpload = 0;
}
if ($imgUpload == 0) {
echo "Файл не был загружен.";
} else {
if (move_uploaded_file($_FILES["img"]["tmp_name"][$key], $imgFile)) {
echo "Файл ". basename( $_FILES["img"]["name"][$key]). " был загружен.";
} else {
echo "Ошибка при загрузке!";
}
}
}
$sql = "INSERT into news (title, text, cat, pimg, img, vid, time, admin) VALUES ('$title', '$text', '$cat', '$pimgName', '$imgName', '$vidName', '$time', '$admin')";
例如,您可以这样做: