diff options
| author | Benjamin Kagia <kagia@server.fake> | 2013-04-19 20:20:23 +0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-07-11 09:11:59 -0400 |
| commit | b0953dc91385fb2823294a76d3c99e01c7b7e4ee (patch) | |
| tree | 86f129ff99ca6f8276e71eb7f811fc28596badc3 /django/core/files | |
| parent | ecd746191c428866e621b9d13ac90a116b1369dc (diff) | |
Fixed #13721 -- Added UploadedFile.content_type_extra.
Thanks Waldemar Kornewald and mvschaik for work on the patch.
Diffstat (limited to 'django/core/files')
| -rw-r--r-- | django/core/files/uploadedfile.py | 13 | ||||
| -rw-r--r-- | django/core/files/uploadhandler.py | 9 |
2 files changed, 13 insertions, 9 deletions
diff --git a/django/core/files/uploadedfile.py b/django/core/files/uploadedfile.py index 39b99ff78f..9f948ca03b 100644 --- a/django/core/files/uploadedfile.py +++ b/django/core/files/uploadedfile.py @@ -23,11 +23,12 @@ class UploadedFile(File): """ DEFAULT_CHUNK_SIZE = 64 * 2**10 - def __init__(self, file=None, name=None, content_type=None, size=None, charset=None): + def __init__(self, file=None, name=None, content_type=None, size=None, charset=None, content_type_extra=None): super(UploadedFile, self).__init__(file, name) self.size = size self.content_type = content_type self.charset = charset + self.content_type_extra = content_type_extra def __repr__(self): return force_str("<%s: %s (%s)>" % ( @@ -55,13 +56,13 @@ class TemporaryUploadedFile(UploadedFile): """ A file uploaded to a temporary location (i.e. stream-to-disk). """ - def __init__(self, name, content_type, size, charset): + def __init__(self, name, content_type, size, charset, content_type_extra): if settings.FILE_UPLOAD_TEMP_DIR: file = tempfile.NamedTemporaryFile(suffix='.upload', dir=settings.FILE_UPLOAD_TEMP_DIR) else: file = tempfile.NamedTemporaryFile(suffix='.upload') - super(TemporaryUploadedFile, self).__init__(file, name, content_type, size, charset) + super(TemporaryUploadedFile, self).__init__(file, name, content_type, size, charset, content_type_extra) def temporary_file_path(self): """ @@ -83,8 +84,8 @@ class InMemoryUploadedFile(UploadedFile): """ A file uploaded into memory (i.e. stream-to-memory). """ - def __init__(self, file, field_name, name, content_type, size, charset): - super(InMemoryUploadedFile, self).__init__(file, name, content_type, size, charset) + def __init__(self, file, field_name, name, content_type, size, charset, content_type_extra): + super(InMemoryUploadedFile, self).__init__(file, name, content_type, size, charset, content_type_extra) self.field_name = field_name def open(self, mode=None): @@ -109,7 +110,7 @@ class SimpleUploadedFile(InMemoryUploadedFile): def __init__(self, name, content, content_type='text/plain'): content = content or b'' super(SimpleUploadedFile, self).__init__(BytesIO(content), None, name, - content_type, len(content), None) + content_type, len(content), None, None) def from_dict(cls, file_dict): """ diff --git a/django/core/files/uploadhandler.py b/django/core/files/uploadhandler.py index f5e95cf2fd..6739b26e0c 100644 --- a/django/core/files/uploadhandler.py +++ b/django/core/files/uploadhandler.py @@ -64,6 +64,7 @@ class FileUploadHandler(object): self.content_type = None self.content_length = None self.charset = None + self.content_type_extra = None self.request = request def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None): @@ -84,7 +85,7 @@ class FileUploadHandler(object): """ pass - def new_file(self, field_name, file_name, content_type, content_length, charset=None): + def new_file(self, field_name, file_name, content_type, content_length, charset=None, content_type_extra=None): """ Signal that a new file has been started. @@ -96,6 +97,7 @@ class FileUploadHandler(object): self.content_type = content_type self.content_length = content_length self.charset = charset + self.content_type_extra = content_type_extra def receive_data_chunk(self, raw_data, start): """ @@ -132,7 +134,7 @@ class TemporaryFileUploadHandler(FileUploadHandler): Create the file object to append to as data is coming in. """ super(TemporaryFileUploadHandler, self).new_file(file_name, *args, **kwargs) - self.file = TemporaryUploadedFile(self.file_name, self.content_type, 0, self.charset) + self.file = TemporaryUploadedFile(self.file_name, self.content_type, 0, self.charset, self.content_type_extra) def receive_data_chunk(self, raw_data, start): self.file.write(raw_data) @@ -187,7 +189,8 @@ class MemoryFileUploadHandler(FileUploadHandler): name = self.file_name, content_type = self.content_type, size = file_size, - charset = self.charset + charset = self.charset, + content_type_extra = self.content_type_extra ) |
