                  if chunk is None:
                      # If the chunk received by the handler is None, then don't continue.
                      break
  
          for i, handler in enumerate(request.upload_handlers):
              file_obj = handler.file_complete(counters[i])
              if file_obj:
                  return DataAndFiles(None, {'file': file_obj})
 
</s> remove             for i, handler in enumerate(request.upload_handlers):
 </s> add             for i, handler in enumerate(upload_handlers): </s> remove                 return DataAndFiles(result[0], {'file': result[1]})
 </s> add                 return DataAndFiles(None, {'file': result[1]}) </s> remove         possible_sizes = [x.chunk_size for x in request.upload_handlers if x.chunk_size]
 </s> add         possible_sizes = [x.chunk_size for x in upload_handlers if x.chunk_size] </s> remove         for handler in request.upload_handlers:
 </s> add         for handler in upload_handlers: </s> remove         for handler in request.upload_handlers:
 </s> add         for handler in upload_handlers:
        for i, handler in enumerate(upload_handlers):
                  if chunk is None:
                      # If the chunk received by the handler is None, then don't continue.
                      break
  
        for i, handler in enumerate(upload_handlers):
              file_obj = handler.file_complete(counters[i])
              if file_obj:
                  return DataAndFiles(None, {'file': file_obj})
keep keep keep keep replace keep keep keep
 Codebase improvements on FileUploadParser

* Added docstrings.
* Added `FileUploadParser.get_filename` to make it easier to override.
* Added url kwargs filename detection step.
* Updated tests corresponding to these changes. 
rest_framework/parsers.py