diff options
| author | Jason Bittel | 2014-09-05 16:27:55 -0700 |
|---|---|---|
| committer | Jason Bittel | 2014-09-05 16:27:55 -0700 |
| commit | 3f7fad2e5a1dd2cccaff97d662745ac24cc18efa (patch) | |
| tree | 1b7257a49104705f1abfaaa36cea3c5219d07a8c /rest_framework | |
| parent | 959e23426088661e12f5c8c3fafc64da42d1fc24 (diff) | |
| download | django-rest-framework-3f7fad2e5a1dd2cccaff97d662745ac24cc18efa.tar.bz2 | |
Refactor disposition unpacking for clarity
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/parsers.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/rest_framework/parsers.py b/rest_framework/parsers.py index 161bc809..c287908d 100644 --- a/rest_framework/parsers.py +++ b/rest_framework/parsers.py @@ -289,22 +289,23 @@ class FileUploadParser(BaseParser): try: meta = parser_context['request'].META - disposition = parse_header(meta['HTTP_CONTENT_DISPOSITION'].encode('utf-8'))[1] - if 'filename*' in disposition: - return self.get_encoded_filename(disposition) - return force_text(disposition['filename']) + disposition = parse_header(meta['HTTP_CONTENT_DISPOSITION'].encode('utf-8')) + filename_parm = disposition[1] + if 'filename*' in filename_parm: + return self.get_encoded_filename(filename_parm) + return force_text(filename_parm['filename']) except (AttributeError, KeyError): pass - def get_encoded_filename(self, disposition): + def get_encoded_filename(self, filename_parm): """ Handle encoded filenames per RFC6266. See also: http://tools.ietf.org/html/rfc2231#section-4 """ - encoded_filename = force_text(disposition['filename*']) + encoded_filename = force_text(filename_parm['filename*']) try: charset, lang, filename = encoded_filename.split('\'', 2) filename = urlparse.unquote(filename) except (ValueError, LookupError): - filename = force_text(disposition['filename']) + filename = force_text(filename_parm['filename']) return filename |
