PHP Çoklu Dosya Yükleme

PHP Çoklu Dosya Yükleme

index.html

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

<style>
  .input-wrapper{
    margin-top: 20px;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #000;
  }
</style>

<h1 class="text-center" style="margin:20px 20px;">Multiple File Upload with HTML and PHP</h1>
<hr>
<div class="row">
  <div class="offset-md-4 col-md-5">
    <form action="upload.php" method="post" enctype="multipart/form-data">
      <div class="form-group input-container">
        <label>Select Files: </label>
        <input type="file" class="form-control" name="fileUpload[]" multiple > 
      </div>
      
      <input type="submit" class="btn btn-success float-right" name="Submit" value="Upload" >
    </form>
  </div>
</div>

upload.php

<?php
$target_dir = 'files/';
if( isset($_FILES['fileUpload']['name'])) {
      
  $total_files = count($_FILES['fileUpload']['name']);
  $uploaded_files = 0;
  
  for($key = 0; $key < $total_files; $key++) {
    
    if(isset($_FILES['fileUpload']['name'][$key]) && $_FILES['fileUpload']['size'][$key] > 0) {

      $ext = strtolower(pathinfo($_FILES["fileUpload"]["name"][$key], PATHINFO_EXTENSION));
      if(!in_array( $ext, array('jpg', 'jpeg', 'png', 'gif', 'bmp'))) {
        echo 'extenstion not allowed';
        exit;
      }

      $maxFileSize = 5 * 1024 * 1024;
      $errors = array();
      if($_FILES['fileUpload']['size'][$key] > $maxFileSize){
        echo 'File size is greater than allowed size';
        exit;
      }

      
      $original_filename = $_FILES['fileUpload']['name'][$key];
      $target = $target_dir . basename($original_filename);
      $tmp  = $_FILES['fileUpload']['tmp_name'][$key];
      if(move_uploaded_file($tmp, $target)){
        $uploaded_files++;
      }
    }
    
  }
  echo $uploaded_files.' Files Uploaded';
}