title: How to allow uploading only CSV and XLS files?
body: <p>I want to restrict my code so that when I upload a file, the file extension can only be xls and csv.</p>
  
  <p>Here is my code so far:</p>
  
  <pre><code>&lt;?php
  if ($_FILES["file"]["error"] &gt; 0) {
      echo "Error: " . $_FILES["file"]["error"] . "&lt;br&gt;";
  } else {
      echo "Upload: " . $_FILES["file"]["name"] . "&lt;br&gt;";
      echo "Type: " . $_FILES["file"]["type"] . "&lt;br&gt;";
      echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB&lt;br&gt;";
      echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
  
  $allowedExts = array("gif", "jpeg", "jpg", "png");
  $temp = explode(".", $_FILES["file"]["name"]);
  $extension = end($temp);
  if ((($_FILES["file"]["type"] == "image/gif") 
          || ($_FILES["file"]["type"] == "image/jpeg") 
          || ($_FILES["file"]["type"] == "image/jpg") 
          || ($_FILES["file"]["type"] == "image/pjpeg") 
          || ($_FILES["file"]["type"] == "image/x-png") 
          || ($_FILES["file"]["type"] == "image/png")) 
          &amp;&amp; ($_FILES["file"]["size"] &lt; 20000000) 
          &amp;&amp; in_array($extension, $allowedExts)) {
      if ($_FILES["file"]["error"] &gt; 0) {
          echo "Return Code: " . $_FILES["file"]["error"] . "&lt;br&gt;";
      } else {
          echo "Upload: " . $_FILES["file"]["name"] . "&lt;br&gt;";
          echo "Type: " . $_FILES["file"]["type"] . "&lt;br&gt;";
          echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB&lt;br&gt;";
          echo "Temp file: " . $_FILES["file"]["tmp_name"] . "&lt;br&gt;";
  
          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";
  }
  ?&gt;
  </code></pre>