2017-09-19 32 views
1

我使用表单上传图片。 我有2个表,一个是product_profile,另一个是product_image。Php + Mysql + Multiupload图片文件

在我的表格中,我有2个按钮。一个上传product_profile的图片,另一个上传product_image中的图片。

但现在我有一个问题,如果,否则如果和其他。它位于“//检查所有字段不为空”

当我只为product_image插入文件“else if(empty($ imgFileProduct))”without insert for profile_image“else if(empty($ imgFile))”正确处理消息“请选择图像文件”。

但是,当我只插入profile_image,他插入数据库并上传文件,而不检查product_image是否为空,并且我有以下消息“对不起,只有JPG,JPEG,PNG & GIF文件是允许的。而不是“请选择图像文件(S)”。

感谢您的帮助,在这一整天。

<?php 
    error_reporting(~E_NOTICE); 
    require_once 'dbconfig.php'; 
    if(isset($_POST['btnsave'])) 
    { 
     $catalogname = $_POST['catalog_name']; 
     $catalogmaker = $_POST['catalog_maker']; 
     $catalogtypes = $_POST['catalog_types']; 
     $catalogscale = $_POST['catalog_scale']; 
     $catalogedition = $_POST['catalog_edition']; 
     $imgFile = $_FILES['profile_image']['name']; 
     $tmp_dir = $_FILES['profile_image']['tmp_name']; 
     $imgSize = $_FILES['profile_image']['size']; 
     $imgFileProduct = $_FILES['product_image']['name']; 
     $imgSizeProduct = $_FILES['product_image']['tmp_name']; 
     $tmp_dirProduct = $_FILES['product_image']['size']; 
     //Check all fields are not empty 
     if(empty($catalogname)){ 
      $errMSG = "Please Enter Product Name."; 
     } 
       else if(empty($catalogmaker)){ 
      $errMSG = "Please Enter a Maker."; 
     } 
       else if(empty($catalogtypes)){ 
      $errMSG = "Please Enter a Types."; 
     } 
       else if(empty($catalogscale)){ 
      $errMSG = "Please Enter a Scale."; 
     } 
       else if(empty($catalogedition)){ 
      $errMSG = "Please Enter a Edition."; 
     } 
       else if(empty($imgFile)){ 
      $errMSG = "Please Select Image File."; 
     } 
       else if(empty($imgFileProduct)){ 
      $errMSG = "Please Select Image File(S)."; 
     } 
     //Check all fields are not empty 
     else 
     { 
      $upload_dir = 'product_images/'; // upload directory 
      $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); 
      $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); 
      $userpic= rand(1000,1000000).".".$imgExt; 
      if(in_array($imgExt, $valid_extensions)){ 
       if($imgSize < 5000000){ 
        move_uploaded_file($tmp_dir,$upload_dir.$userpic); 
       } 
       else{ 
        $errMSG = "Sorry, your file is too large."; 
       } 
      } 
      else{ 
       $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed3."; 
      } 
      if(!isset($errMSG)){ 
      $stmt = $DB_con->prepare('INSERT INTO id_catalog(name,maker,types,scale,edition,pic) VALUES(:uname, :umaker, :utypes, :uscale, :uedition, :upic)'); 
      $stmt->bindParam(':uname',$catalogname); 
      $stmt->bindParam(':umaker',$catalogmaker); 
      $stmt->bindParam(':utypes',$catalogtypes); 
      $stmt->bindParam(':uscale',$catalogscale); 
      $stmt->bindParam(':uedition',$catalogedition); 
      $stmt->bindParam(':upic',$userpic); 
      if($stmt->execute()){ 
       $successMSG = "new record succesfully inserted ..."; 
       header("refresh:5;index.php"); // redirects image view page after 5 seconds. 
       $last_id = $DB_con->lastInsertId(); 
       echo "New record created successfully. Last inserted ID is: " . $last_id; 
      } 
      else{ 
       $errMSG = "error while inserting...."; 
      } 
     } 
      { 
      foreach($_FILES['product_image']['tmp_name'] as $key => $tmp_dirProduct){ 
      $imgFileProduct = $key.$_FILES['product_image']['name'][$key]; 
      $imgSizeProduct =$_FILES['product_image']['size'][$key]; 
      $tmp_dirProduct =$_FILES['product_image']['tmp_name'][$key]; 
      $upload_dirProduct = 'product_images/'; 
      $imgExtProduct = strtolower(pathinfo($imgFileProduct,PATHINFO_EXTENSION)); 
      $valid_extensionsProduct = array('jpeg', 'jpg', 'png', 'gif'); 
      $productpic= rand(1000,1000000).".".$imgExtProduct; 
      { 
      if(in_array($imgExtProduct, $valid_extensionsProduct)){   
       if($imgSizeProduct < 5000000){ 
        move_uploaded_file($tmp_dirProduct,$upload_dirProduct.$productpic); 
       } 
       else{ 
        $errMSG = "Sorry, your file is too large."; 
       } 
      } 
      else{ 
       $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed2."; 
      } 
     if(!isset($errMSG)){ 
      $stmt1 = $DB_con->prepare('INSERT INTO id_images(name_pic) VALUES(:uproductpic)'); 
      $stmt1->bindParam(':uproductpic',$productpic); 
      if($stmt1->execute()){ 
       $successMSG = "new record succesfully inserted ..."; 
       header("refresh:5;index.php"); // redirects image view page after 5 seconds. 
       $last_id = $DB_con->lastInsertId(); 
       echo "New record created successfully. Last inserted ID is: " . $last_id; 
      } 
      else{ 
       $errMSG = "error while inserting...."; 
      } 
     } 
    } 
      } 

     } 

    } 
    } 

?> 
+2

请删除无关的问题的代码的一部分。您已提交大约150行代码。 – OptimusCrime

+0

对不起@OptimusCrime。我编辑并删除了html。 – Manada

+0

您的$ _FILES是一个数组,因此您必须遍历它们并分别插入它们。当你从输入中删除多个和[]时,你不会发送一个数组,因此它可以工作。 – xjx424

回答

1

速战速决可能是,

$product_images_count = sizeof($_FILES['product_image']); 

for($i=0; $i<$product_images_count; $i++) { 
    $ProductimgFile = $_FILES['product_image'][$i]['name']; 
    $Producttmp_dir = $_FILES['product_image'][$i]['tmp_name']; 
    $ProductimgSize = $_FILES['product_image'][$i]['size']; 
    do_something_with_those_variables(); 
} 
+0

谢谢@marmeladze,但我把这些线完全在什么和什么之间? – Manada

+0

'isset($ _ POST)'里的某个地方。理想情况下,在处理主要实体('product')之后。 – marmeladze

+0

我更新了,现在工作,但我有问题,如果,否则,否则如果 – Manada