Загрузка нескольких файлов с использованием HTML5 и PHP - PullRequest
4 голосов
/ 04 января 2012

У меня есть форма для загрузки файла, настроенная с использованием атрибута HTML5.

Однако форма по-прежнему загружает только один файл. Мне нужно создать какую-то функцию зацикливания в PHP или есть другой способ сделать это?

Вот мой код ...

Форма:

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">        
       <input type="file" multiple="multiple" name="file[]" id="file" />
       <input name="submit" type="submit" value="Submit" />    
</form>

PHP:

<?php
if(isset($_POST['submit'])) {           
foreach($_FILES['newsImage'] as $file){ 
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg")))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {


    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
}
}
?>

Ответы [ 4 ]

3 голосов
/ 18 января 2012
for ($i = 0; $i < count($_FILES['newsImage']['name']); $i++) {
    // handle upload
}
3 голосов
/ 04 января 2012

Я считаю, что ваше поле должно быть <input type="file" multiple="multiple" name="files[]" />

А затем в PHP:

<?php
   foreach($_FILES['files'] as $file){
       // Handle one of the uploads
   }
?>
2 голосов
/ 18 марта 2012

Я считаю, что этот код может служить цели.Он перебирает массив $_FILES и создает массив с парой key => value всех атрибутов для каждого файла.

$temp = array();
foreach ($_FILES['file'] as $key => $value) {
    foreach($value as $index => $val){
        $temp[$index][$key] = $val;
    }
}
0 голосов
/ 14 января 2019
<?php   

    include 'db.php';

      extract($_POST);

        extract($_POST);
        if(isset($submit))
        {

          $count = count($_FILES['image']['name']);

           for($i=0;$i<$count;$i++)
           {
              $fname = $_FILES['image']['name'][$i];
              $file_tmp = $_FILES['image']['tmp_name'][$i];
              $file_size =  $_FILES['image']['size'][$i];
               $file_type=$_FILES['image']['type'][$i];
               echo $file_size,$file_type;         
               $target = "img/".$fname;
               move_uploaded_file($file_tmp,$target);
                echo "uploaded succ !"."<br>";

           }

        }

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...