title: tornado file upload is blocking
body: <p>I am trying to create a file upload service with Tornado.</p>
  
  <p>But I noticed that when multiple users uploads files, tornado waits for the first in to finish and process the next one.</p>
  
  <p>What is the proper way of doing ASYNC file uploads on Tornado?</p>
  
  <p>My post:</p>
  
  <pre><code>  @tornado.web.asynchronous
    def post(self):
      list_of_img = ['png','jpg','jpeg','gif']
      list_of_files = ['rtf','txt','ppt','pptx','doc','docx','pdf','xls','xlsx','rar','zip','tgz','bz','gz','tar','bz2','3gp','mp4','m15','avi','mp3']
      path  =  __UPLOADS__
      try:
        fileinfo = self.request.files['file'][0]
        filebody = fileinfo['body']
        filename = fileinfo['filename']
        filetype = fileinfo['content_type']
        extn     = os.path.splitext(filename)[1]
  
        n_filename = str(uuid.uuid4()) + extn
  
        # rcv file
        print "saving", n_filename + "..."
        output_file = open(n_filename, 'w')
        output_file.write(filebody)
  
        # upload to s3
        print "uploading", n_filename + "..."
  
        self.upload(path, n_filename)
  
        # clean up
        print "cleaning", n_filename + "..."
        self.delete_local(n_filename)
  
        self.finish(n_filename)
      except KeyError, key:
        delete = self.get_argument("delete", None, True)
        if delete:
          filename = self.get_argument("filename", None, True)
  
          print "deleting", filename + "..."
          self.delete(path, filename)
  
          self.finish(filename)
  </code></pre>