title: Uploading multiple images to GAE Blobstore using HTML5 multiple file input
body: <p>I'm trying to store multiple image files to the GAE Blobstore using HTML5 multiple file input.  </p>
  
  <p>Since my web application will be used by photographers to batch upload photos, it is <strong>absolutely critical</strong> to enable multiple file selection on the client's browser (uploading 200+ photos one at a time would be a pain)</p>
  
  <p>The client side HTML would look like this:</p>
  
  <pre><code>   &lt;form action = "/upload" method="post" enctype="multipart/form-data"&gt;
       &lt;input type="file" name="myFiles[]" multiple="true"/&gt;
       &lt;input type="submit"/&gt;
     &lt;/form&gt;
  </code></pre>
  
  <p>On the server side, a Java HttpServlet would be used to store the group of photos:</p>
  
  <pre><code>public class PhotoUploadServlet extends HttpServlet {
  
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        //Upload each photo of myFiles[] in sequence to the GAE Blobstore
    }
  </code></pre>
  
  <p>I'm planning on storing each photo individually using the procedure explained <a href="http://code.google.com/appengine/docs/java/blobstore/overview.html#Writing_Files_to_the_Blobstore" rel="nofollow noreferrer" title="here">here</a>. </p>
  
  <p><strong>The problem:</strong> I don't know how to extract every image individually from the myFiles[] parameter of the HttpServletRequest. </p>
  
  <p>Could someone explain me how to interpret the myFiles[] parameter as something that would be easily used in sequence, alike a <code>List&lt;SomeImageType&gt;</code>. Then I could easily save each photo in the <code>List&lt;SomeImageType&gt;</code> individually to the Blobstore!</p>
  
  <p>Thanks in advance!</p>
  
  <p>P.S.: I've already looked at <a href="https://stackoverflow.com/questions/4762779/how-to-upload-multiple-files-to-blobstore">this post</a>, but since I do not know Python, I'm a little bit lost by the solution proposed in Nick Johnson's blog post.</p>