title: Why "HTML <input type='file' />" has "files" property in JavaScript?
body: <p>Consider this HTML snippet:</p>
  
  <pre><code>&lt;input type='file' id='fileUpload' /&gt;
  </code></pre>
  
  <p>To get access to this control in JavaScript, we can write:</p>
  
  <pre><code>var temp = document.getElementById('fileUpload');
  </code></pre>
  
  <p>OK, don't get mad, I know you all know this. But the interesting part is that, <code>temp</code> variable now has a property called <code>files</code>, (not <strong>file</strong>, but <strong>files</strong>, the plural form) which is of type <code>FileList</code>, which of course is a list of <code>File</code> objects. This <strong>semantically</strong> should mean that uploading multiple files via <strong>one and only one</strong> HTML file upload control should be possible. However, you can't upload multiple files this way and there are many workarounds, not straight usage.</p>
  
  <p>How do you explain this paradox?</p>
  
  <p>Update: I built this <a href="http://jsfiddle.net/saeedneamati/kMPTF/3/" rel="nofollow">jsfiddle</a> to see one of the answers in action.</p>