簡體   English   中英

如何在php中一次移動上傳的多個圖像

[英]how to move uploaded multiple images at once in 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>

如何移動文件夾中的其他圖像(“ image2”,“ image3”,“ image4”)?
我在代碼中犯了什么錯誤? 你能解釋一下我做錯了什么嗎?

您僅為image1定義了var $ path -您需要在move_uploaded_file和copy函數的每個“ if”塊中更改此var。 目前,您僅對所有圖像使用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>

請覆蓋您的$ path變量,然后它將上傳屬性。

如果條件如下面那樣更改$ path varibale或將變量更改為$ 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>

這是您需要做的:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM