如何在PHP中一次移动上传的多个图像



我正在尝试上传 3 个图像字段,将它们存储在我的数据库中,然后将上传的文件移动到一个文件夹中。

目前,"image1",">

image2","image3","image4"字段正在插入MySQL数据库,但只有"image1"正在上传并移动到我的文件夹中。

这是我的代码:

if(isset($_POST['submit'])){
$pro_image1 = $_FILES['image1']['name'];
$pro_image2 = $_FILES['image2']['name'];
$pro_image3 = $_FILES['image3']['name'];
$pro_image4 = $_FILES['image4']['name'];
$tmp_name   = $_FILES['image1']['tmp_name'];
$tmp2_name  = $_FILES['image2']['tmp_name'];
$tmp3_name  = $_FILES['image3']['tmp_name'];
$tmp4_name  = $_FILES['image4']['tmp_name'];
$pro_query = "INSERT INTO product(image1,image2,image3,image4) VALUES('$pro_image1','$pro_image2','$pro_image3','$pro_image4')";
if(mysqli_query($con,$pro_query)){
$msg = "<p class='pull-right' style='color:green;'> Product Added successfully</p>";
$path = "images/$pro_image1";
if(move_uploaded_file($tmp_name, $path)) {
copy($path, "../$path");
}
if(move_uploaded_file($tmp2_name, $path)) {
copy($path, "../$path");
}
if(move_uploaded_file($tmp3_name, $path)) {
copy($path, "../$path");
}
if(move_uploaded_file($tmp4_name, $path)) {
copy($path, "../$path");
} elseif(!mysqli_query($con,$pro_query)) {
$insert_error = "<p class='pull-right' style='color:red;>Product didn't added</p>";
}
}
}
<form action="" method="post" enctype="multipart/form-data"  class="form-font">
<div class="col-md-6">
<div class="form-group">
<label>Image1</label>
<input type="file" name="image1" class="form-control" required>
</div>
<div class="form-group">
<label>Image2</label>
<input type="file" name="image2" class="form-control" required>
</div>
<div class="form-group">
<label>Image3</label>
<input type="file" name="image3" class="form-control" required>
</div>
<div class="form-group">
<label>Image4</label>
<input type="file" name="image4" class="form-control" required>
</div>
<center>
<input type='submit' name='submit' class='btn btn-success' value='Add Product'>
</center>
</div>
</form>

如何移动文件夹中的其他图像("图像2","图像3","图像4"(?
我在代码中犯了什么错误?你能解释一下我哪里做错了吗?

以下是您需要执行的操作:

if(move_uploaded_file($tmp_name, $path)){
copy($path, "images/$pro_image2");
}
if(move_uploaded_file($tmp2_name, $path)){
copy($path, "images/$pro_image3");
}if(move_uploaded_file($tmp3_name, $path)){
copy($path, "images/$pro_image4");
}if(move_uploaded_file($tmp4_name, $path)){
//copy($path, "images/$path");
}

请覆盖您的$path变量,然后它将上传属性。

在条件更改之前$path变量,如下所示或将变量更改为 $path 1,$path 2,$path 3。

$path = "images/$pro_image1";
$path = "images/$pro_image2";
$path = "images/$pro_image3";

-

if(isset($_POST['submit'])){
$pro_image1 = $_FILES['image1']['name'];
$pro_image2 = $_FILES['image2']['name'];
$pro_image3 = $_FILES['image3']['name'];
$pro_image4 = $_FILES['image4']['name'];
$tmp_name = $_FILES['image1']['tmp_name'];
$tmp2_name = $_FILES['image2']['tmp_name'];
$tmp3_name = $_FILES['image3']['tmp_name'];
$tmp4_name = $_FILES['image4']['tmp_name'];
$pro_query = "INSERT INTO product(image1,image2,image3,image4) VALUES('$pro_image1','$pro_image2','$pro_image3','$pro_image4')";
if(mysqli_query($con,$pro_query)){
$msg = "<p class='pull-right' style='color:green;'> Product Added successfully</p>";
$path = "images/$pro_image1";
if(move_uploaded_file($tmp_name, $path)){
copy($path, "../$path");
}
$path = "images/$pro_image2";
if(move_uploaded_file($tmp2_name, $path)){
copy($path, "../$path");
}
$path = "images/$pro_image3";
if(move_uploaded_file($tmp3_name, $path)){
copy($path, "../$path");
}
$path = "images/$pro_image4";
if(move_uploaded_file($tmp4_name, $path)){
copy($path, "../$path");
}
elseif(!mysqli_query($con,$pro_query)){
$insert_error = "<p class='pull-right' style='color:red;>Product didn't added</p>";
}
}
}
<form action="" method="post" enctype="multipart/form-data"  class="form-font">
<div class="col-md-6">
<div class="form-group">
<label>Image1</label>
<input type="file" name="image1" class="form-control" required>
</div>
<div class="form-group">
<label>Image2</label>
<input type="file" name="image2" class="form-control" required>
</div>
<div class="form-group">
<label>Image3</label>
<input type="file" name="image3" class="form-control" required>
</div>
<div class="form-group">
<label>Image4</label>
<input type="file" name="image4" class="form-control" required>
</div>
<center><input type='submit' name='submit' class='btn btn-success' value='Add Product'></center>
</form>

你只为 image1 定义了 var $path -- 你需要在每个 "if" 块中更改这个 var 来move_uploaded_file和复制函数。 目前,您仅对所有图像使用 image1 的路径和文件名。

你只需要像"image[0], image[1], image[2]"这样命名它们 代码中的更改

<form action="" method="post" enctype="multipart/form-data"  class="form-font">
<div class="col-md-6">
<div class="form-group">
<label>Image1</label>
<input type="file" name="image[0]" class="form-control" required>
</div>
<div class="form-group">
<label>Image2</label>
<input type="file" name="image[1]" class="form-control" required>
</div>
<div class="form-group">
<label>Image3</label>
<input type="file" name="image[2]" class="form-control" required>
</div>
<div class="form-group">
<label>Image4</label>
<input type="file" name="image[3]" class="form-control" required>
</div>
<center><input type='submit' name='submit' class='btn btn-success' value='Add Product'></center>
</form>

最新更新