【问题标题】:how to move uploaded multiple images at once in php如何在php中一次移动上传的多个图像
【发布时间】:2017-08-28 05:53:24
【问题描述】:

我正在尝试上传 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>

如何移动文件夹中的其他图片(“image2”、“image3”、“image4”)?
我在代码中犯了什么错误?你能解释一下我哪里做错了吗?

【问题讨论】:

    标签: php file-upload


    【解决方案1】:

    这是你需要做的:

    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");
               }
    

    【讨论】:

    • 如果您可以在代码中添加一些解释,以了解您如何解决问题,那就太好了
    • 如果你看一下原始代码你会注意到我的代码和他的代码之间的区别,不需要那么大的解释。
    【解决方案2】:

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

    之前如果条件改变 $path 变量如下或改变变量为 $path1,$path2,$path3..

    $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>
    

    【讨论】:

      【解决方案3】:

      您只为 image1 定义了 var $path —— 您需要在每个“if”块中为函数 move_uploaded_file 和 copy 更改此 var。 目前,您只对所有图像使用 image1 的路径和文件名。

      【讨论】:

        【解决方案4】:

        您只需将它们命名为“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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-12
          • 1970-01-01
          • 1970-01-01
          • 2021-04-07
          • 2021-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多