将多个文件上传到服务器,php不上传到服务器所有文件

时间:2014-10-24 11:23:01

标签: php mysql forms file-upload server

嗨,我有一个问题,我有一个上传文件并插入mysql的表单mysql插入部分正在工作,但他只移动三个文件到服务器需要请一些帮助这里是我的代码。 上传表格:

<form enctype="multipart/form-data" action="add-exposes.php" method="POST">  Expose Name: <input type="text" name="name"><br>  Expose Beschreibung: <textarea style="width: 810px; height: 200px" name="expose_desc" class="textarea"></textarea><br>  Expose Kategorie:<select name="expose_cat" size="3"> 
                        <?php 
                    mysql_connect("xxx.de.mysql", "xxxx", "xxx") or die(mysql_error()) ;  mysql_select_db("handwerker_verb") or die(mysql_error()) ;

                    $data = mysql_query("SELECT * FROM cats") or die(mysql_error());
                    while($info = mysql_fetch_array( $data )) {
                    echo '<option value="'.$info['id'].'">'.$info['cat'].'</option>';
                    } ?>


                         </select><!--<input type="text" name="expose_cat">--><br>Expose Preis:<input type="text" name="price"> <br> Bild: <input type="file" name="photo"><br> <input type="file" name="photo1"><br> <input type="file" name="photo2"><br>   <input type="submit" value="Add">  </form>

添加到服务器和mysql:

<?php   $target = "images/";  $target = $target . basename( $_FILES['photo']['name']);
$target1 = "images/";  $target1 = $target1 . basename( $_FILES['photo1']['name']);
$target2 = "images/";  $target2 = $target2 . basename( $_FILES['photo2']['name']);

        $name=$_POST['name'];  $expose_desc=$_POST['expose_desc'];  $expose_cat=$_POST['expose_cat'];  $pic=($_FILES['photo']['name']);  $price=$_POST['price']; $pic1=($_FILES['photo1']['name']); $pic2=($_FILES['photo2']['name']); 

        mysql_connect("xxxx.de.mysql", "xx", "xxx") or die(mysql_error()) ;  mysql_select_db("handwerker_verb") or die(mysql_error()) ;

          mysql_query("INSERT INTO `exposes` VALUES ('', '$name', '$pic', '$expose_desc', '$expose_cat', '$price', '$pic1', '$pic2' )") ; 

          if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))  {   echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  } 
          elseif(move_uploaded_file($_FILES['photo1']['tmp_name'], $target1))  {   echo "The 2 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  } 
          elseif(move_uploaded_file($_FILES['photo2']['tmp_name'], $target2))  {   echo "The 3 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  }

           else {    echo "Sorry, there was a problem uploading your file.";  }  ?>                         

1 个答案:

答案 0 :(得分:1)

move_uploaded_file在成功时返回true,永远不会到达剩余的elseif。 尝试这样的事情:

$error = false;

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))  
{   
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  
} else $error = true;

if(move_uploaded_file($_FILES['photo1']['tmp_name'], $target1))  
{   
echo "The 2 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  
} else $error = true; 

if(move_uploaded_file($_FILES['photo2']['tmp_name'], $target2))  
{   
echo "The 3 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  
} else $error = true;

if($error)
   echo "Sorry, there was a problem uploading your file.";