SVN: r24460 - trunk/quixote
Neil Schemenauer <nascheme-fVcApmY9cLvQ3/1i3zOLAti2O/[email protected]> Mon, 14 Jun 2004 18:28:45 -0400
| Newsgroups | gmane.comp.web.quixote.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: nascheme
Date: 2004-06-14 18:28:19 -0400 (Mon, 14 Jun 2004)
New Revision: 24460
Modified:
trunk/quixote/upload.py
Log:
Adds a 'content_type' attribute to Upload instances, based on the
'Content-Type' header in the MIME part representing the file. If
this header is missing from the request, then 'content_type' will
be set to None.
Modified: trunk/quixote/upload.py
===================================================================
--- trunk/quixote/upload.py 2004-06-14 22:25:53 UTC (rev 24459)
+++ trunk/quixote/upload.py 2004-06-14 22:28:19 UTC (rev 24460)
@@ -120,9 +120,12 @@
characters neutralized (see make_safe())
tmp_filename
where you'll actually find the file on the current system
+ content_type
+ the content type provided by the user-agent in the request
+ that uploaded this file.
"""
- def __init__ (self, orig_filename):
+ def __init__ (self, orig_filename, content_type=None):
if orig_filename:
self.orig_filename = orig_filename
bspos = orig_filename.rfind("\\")
@@ -142,6 +145,7 @@
self.orig_filename = None
self.base_filename = None
+ self.content_type = content_type
self.tmp_filename = None
def __str__ (self):
@@ -300,10 +304,10 @@
self.upload_dir_mode)
os.mkdir(self.upload_dir, self.upload_dir_mode)
- def handle_upload (self, name, filename, file, boundary):
+ def handle_upload (self, name, filename, file, boundary, content_type):
if self.upload_dir is None:
raise ConfigError("upload_dir not set")
- upload = Upload(filename)
+ upload = Upload(filename, content_type)
self.check_upload_dir()
done = upload.receive(file, boundary, self.upload_dir)
self.add_form_value(name, upload)
@@ -331,7 +335,9 @@
"in body sub-part")
(name, filename) = self.parse_content_disposition(cdisp)
if filename:
- done = self.handle_upload(name, filename, file, boundary)
+ content_type = headers.get('content-type')
+ done = self.handle_upload(name, filename, file,
+ boundary, content_type)
else:
done = self.handle_regular_var(name, file, boundary)