2016-02-14 83 views
1

我想在一行中上传多个图片,但它创建了两行,一个正好是我想要的,但另一个是空的。为什么它创建两行?PHP MySQL多文件上传

<?php 
     $dir="img"; 
     $imgList = array(); 
     $files_count=count($_FILES['files']['name']); 
     for($i=0;$i<$files_count;$i++){ 
     if(!empty($_FILES['files']['name'][$i])) 
      { 
      move_uploaded_file($_FILES['files']['tmp_name'][$i],$dir."/".$_FILES['files']['name'][$i]); 
      $file_name = $_FILES['files']['name'][$i]; 
      array_push($imgList,$file_name); 
      }     
     } 
     $imgs = implode(",",$imgList); 
     mysqli_query($connect,"insert into episodes (Id,images) values ('','$imgs')"); 
?> 
+0

逗号分隔的图像路径是不好的做法。现在,问题在于你的HTML代码在哪里。 HTML和PHP文件是相同的文件?如果是,那么你需要使用条件为'POST'动作。 –

+0

我的HTML和PHP文件在同一个文件中,当我添加如果条件为POST,空行不见了:)非常感谢 – ysfcyln

回答

0

试试这个代码:

<?php 
    if(isset($_FILES['files'])) { 
     $dir="img"; 
     $imgList = array(); 
     $files_count=count($_FILES['files']['name']); 
     for($i=0;$i<$files_count;$i++){ 
     if(!empty($_FILES['files']['name'][$i])) 
      { 
      move_uploaded_file($_FILES['files']['tmp_name'][$i],$dir."/".$_FILES['files']['name'][$i]); 
      $file_name = $_FILES['files']['name'][$i]; 
      array_push($imgList,$file_name); 
      }     
     } 
     $imgs = implode(",",$imgList); 
     mysqli_query($connect,"insert into episodes (Id,images) values ('','$imgs')"); 
} 
?> 

你只需要检查文件是否被设置。

+0

谢谢,这解决了我的问题 – ysfcyln