如何上传文件数组?

时间:2016-09-11 21:21:30

标签: php arrays file file-upload image-upload

我正在尝试通过多次提交表单来构建文件数组,然后将这些文件移动到目录中,但它无法正常工作。每次上传都会覆盖前一个,然后它甚至不会移动那个(upload_to_file()函数不做任何事情)

HTML:

var latLng = new google.maps.LatLng(itemsToShow[i].lat, itemsToShow[i].long);
var marker = new google.maps.Marker({
 position: latLng,
 icon: markerImage
});
// slightly modified from Google Maps JS API v3 - Simple Multiple Marker Example
// http://stackoverflow.com/questions/3059044/google-maps-js-api-v3-simple-multiple-marker-example
google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(ItemsToShow[i].lat+","+itemsToShow[i].long);
      infowindow.open(map, marker);
    }
})(marker, i));

重要的是只有一个上传按钮可用于上传许多文件。

我需要将它们存储在一个数组中,以便我可以通过循环在任何地方显示它们的['name']。<form id="form" action="home.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="8000000"> <input class="upload_btn" type="file" name="images[]" id="image_file"> <input type="submit" id="img_submit" class="form_button" name="submit_image" value="upload"/> </form>

然后,一旦提交了另一个表单,它就会调用一个函数将数组中的每个文件移动到一个目录中。

包含的php文件中的函数:

for ($i = 0; $i < count($_FILES['images']['name']); $i++){}

我只是用数组中的第一个元素测试它,但是稍后需要进行循环。

1 个答案:

答案 0 :(得分:0)

这是程序,该程序可帮助您上传多个文件。代码“ sub”中的是提交按钮名称。 “ upload”是文件控制器的名称,上载的文件存储在您必须在根文件夹中创建的名为“ img”的目录中。

<?php

if (isset($_POST['sub'])) {
    if (count($_FILES['upload']['name']) > 0) {
     for ($i=0; $i<count($_FILES['upload']['name']); $i++) {
      $tmpFilePath = $_FILES['upload']['tmp_name'][$i];
      if ($tmpFilePath != "") {
        $shortname = $_FILES['upload']['name'][$i];
        $filePath = "img/" . date('d-m-Y-H-i-s').'-'.$_FILES['upload']['name'][$i];
        if (move_uploaded_file($tmpFilePath, $filePath)) {
          $files[] = $shortname;                    
        }
      }
    }
  }
  echo "<h1>Uploaded:</h1>";    
  if(is_array($files)){
    echo "<ul>";
    foreach($files as $file){
      echo "<li>$file</li>";
    }
    echo "</ul>";
  }
}
?>

给出了HTML代码

<form action="" enctype="multipart/form-data" method="post">
    <input id='upload' name="upload[]" type="file" multiple="multiple" />
    <input type="submit" name="sub" value="Upload Now">
</form>