gpt4 book ai didi

php - 使用 2 个文本字段将多个图像上传到数据库

转载 作者:行者123 更新时间:2023-11-29 14:30:13 24 4
gpt4 key购买 nike

好吧,我有一个困境。我希望能够将最多六个图像和 2 个文本字段(标题和描述)上传到数据库中...实际上让我纠正自己,我想将图像的名称存储在数据库中,这样我就可以得到稍后再上照片。我知道如何将多张图片上传到文件夹,并且知道如何将行插入数据库,但我不知道如何将两者结合起来。如果其中一个文件有问题,我如何将其与图像工作结合起来,取消整个过程?

我的数据库设置只是 id |标题 |描述 |图像1 |图像2 |图像3 |图片4 |图片5 |图片6

到目前为止我编写的代码是:

if (isset($_POST['formsubmitted'])) { //if form was submitted
$error = array();//Declare An Array to store any error message

if (empty($_POST['title'])) {//if no name has been supplied
$error[] = 'Please enter a title for your post.';//add to array "error"
$show_errors = 'show';
} else {
$title = $_POST['title'];//else assign it a variable
}



if (empty($_POST['desc'])) {
$error[] = 'Please enter a short desc of your post.';//add to array "error"
$show_errors = 'show';
} else {
$desc = $_POST['desc'];//else assign it a variable
}



if (empty($error)){ //if no error, insert into db

$new_post = "INSERT INTO `posts` ( `title`, `desc`) VALUES ( '$title', '$desc')";
$result = mysql_query($new_post ) or die(mysql_error('error inserting post'));

}


}

那么html是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php if (isset($show_errors)) {
//show user the errors if form cant be submitted
echo '<div> <ol>';
foreach ($error as $key => $values) { echo ' <li>'.$values.'</li>'; }
echo '</ol></div><br />'; }?>

<br />
<form method="post" id="newpost" action="" enctype="multipart/form-data">
<div><input name="title" type="text" value="" class="title_input"></div>
<div><textarea id="area4" cols="40" rows="5" name="desc" class="desc_texbox"></textarea></div>
<div><input type="file" name="images1"></div>
<div><input type="file" name="images2"></div>
<div><input type="file" name="images3"></div>
<div><input type="file" name="images4"></div>
<div><input type="file" name="images5"></div>
<div><input type="file" name="images6"></div>
<input type="hidden" name="formsubmitted" value="TRUE" />
<input type="submit" id="upload" value="Upload">
</form>
</body>
</html>

最佳答案

这还没有完成,但它应该会让你朝着正确的方向前进。请注意,我是根据更改文件字段重命名为 <input type="file" name="images[1]" /> 来完成此操作的。以便将它们作为数组进行处理。

<?php

error_reporting(E_ALL);
ini_set('display_errors', true);

$db = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'pass');


if (isset($_POST['formsubmitted'])) { //if form was submitted

$error_array = array();//Declare An Array to store any error message

// check all images for upload errors
// you should probably add extra file validation here - check image type etc
$upload_error = false;
foreach($_FILES['images']['error'] as $error) {
if ($error != 0 && $error != 4) {
$upload_error = true;
}
}

if ($upload_error) {
$error_array[] = 'One of the image uploads failed!';
}


if (empty($_POST['title'])) {//if no name has been supplied
$error_array[] = 'Please enter a title for your post.';//add to array "error"
} else {
$title = $_POST['title'];//else assign it a variable
}

if (empty($_POST['desc'])) {
$error_array[] = 'Please enter a short desc of your post.';//add to array "error"
} else {
$desc = $_POST['desc'];//else assign it a variable
}

if (empty($error_array)){ //if no error, insert into db

$new_post = "INSERT INTO `posts` ( `title`, `desc`) VALUES (?, ?)";
$stmt = $db->prepare($new_post);
$stmt->execute(array($title, $desc));

$new_post_id = $db->lastInsertId();

// now start processing the images
$image_sql = "INSERT INTO `post_images` (`post_id`, `img_name`) VALUES (?, ?)";
$stmt = $db->prepare($image_sql);

for ($i = 1; $i <= 6; $i++) {

// you need to add some code to vlaidate, move and rename the files

// add the files to the db
$file_name = $_FILES['images']['name'][$i];
$stmt->execute(array($new_post_id, $file_name));

}

} else {
print_r($error_array);
}

}
?>

关于php - 使用 2 个文本字段将多个图像上传到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com