使用多个上传时,有时仅在php中移动上传的文件

时间:2018-04-19 05:14:18

标签: php multiple-file-upload

我有一个网页,用于使用带有单个提交按钮的图块上传图块图像和概念设计图像。但是,当使用单个提交上传2个图像时,移动上传的文件始终无法正常工作。有时它只移动平铺图像,而不是概念图像。

这是我的代码:

if(isset($_POST['upload']))
{
    $name=$_POST['name'];
    $size=$_POST['size'];
    $finish=$_POST['finish'];
    /* Concept Image */
    $concept=$_FILES['concept']['name'];
    $contmp=$_FILES['concept']['tmp_name'];
    $location='concept';
    $upload=move_uploaded_file($contmp,'concept/'.$concept);
    $confile='concept/'.$concept; 
    /* Tile Image */
    $image=$_FILES['image']['name'];
    $imgtmp=$_FILES['image']['tmp_name'];
    $location='tileimage';
    $uploading=move_uploaded_file($imgtmp,"tileimage/".$image);
    $upfile="tileimage/".$image;
    $qry="insert into tile_list value('','$name','$size','$finish','$upfile','$confile')";
    $ex=mysqli_query($con,$qry);
    $query="insert into availcolors value('','$name','$name','$upfile','$confile')";
    $exe=mysqli_query($con,$query);
}

这是我的html标记:

    <form method="post" enctype="multipart/form-data" class="form-horizontal">
           <div class="form-group">
              <label class="control-label col-sm-4">TILE IMAGE<br>
              </label>
              <div class="col-sm-10 col-md-offset-0 col-md-4">
              <input type="file" class="form-control" name=image>
              </div> 
            </div>
            <div class="form-group">
              <label class="control-label col-sm-4">CONCEPT 3D<br>
              </label>
              <div class="col-sm-10 col-md-offset-0 col-md-4">
              <input type="file" class="form-control" name="concept">
              </div> 
            </div>
            <div class="col-sm-10 col-md-7 col-md-offset-4">
              <button type="submit" name="upload"><img src="images/upload.jpg" alt="" width="106" height="25" class="img-responsive"></button>
            </div>
<form>

请帮我找出问题所在

1 个答案:

答案 0 :(得分:0)

请尝试以下代码:

<?php
//error_reporting(0);
 if(isset($_POST['upload']))
{
    $name = $_POST['name'];
    $size = $_POST['size'];
    $finish = $_POST['finish'];
    /* Concept Image */

    $aMyUploads = array();
    foreach ($_FILES as $key => $aFile) {
        for($i = 0; $i<count($aFile['error']); $i++){
            //echo $aFile['error'][$i]; exit;
            if(0 === $aFile['error'][$i]){
                if($i == 0)
                    $newLocation = 'concept/'.$aFile['name'][$i];
                else if($i == 1)
                    $newLocation = 'tileimage/'.$aFile['name'][$i];

            }   
            if(0 === $aFile['error'][$i] && (false !== move_uploaded_file($aFile['tmp_name'][$i], $newLocation))){
                $aMyUploads[] = $newLocation;
            } else {
                $aMyUploads[] = '';
            }
        }   
    }

    if(is_array($aMyUploads)){
        $confile=$aMyUploads[0]; 

        $upfile=$aMyUploads[1];

        $qry="insert into tile_list value('','$name','$size','$finish','$upfile','$confile')";
        $ex=mysqli_query($con,$qry);
        $query="insert into availcolors value('','$name','$name','$upfile','$confile')";
        $exe=mysqli_query($con,$query);
    }else{
        echo "ERROR :: Not insert Please try";
    }
}
?>
<html>
 <form method="post" enctype="multipart/form-data" class="form-horizontal" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <div class="form-group">
      <label class="control-label col-sm-4">TILE IMAGE<br></label>
      <div class="col-sm-10 col-md-offset-0 col-md-4">
      <input type="file" class="form-control" name="upload_files[]">
      </div> 
    </div>
    <div class="form-group">
      <label class="control-label col-sm-4">CONCEPT 3D<br></label>
      <div class="col-sm-10 col-md-offset-0 col-md-4">
      <input type="file" class="form-control" name="upload_files[]">
      </div> 
    </div>
    <div class="col-sm-10 col-md-7 col-md-offset-4">
      <button type="submit" name="upload"><img src="images/upload.jpg" alt="" width="106" height="25" class="img-responsive"></button>
    </div> 
    </form>
</html>