diff --git a/Lib/urllib2.py b/Lib/urllib2.py index f9e6bf254f4..5882de6c457 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -956,11 +956,14 @@ class FTPHandler(BaseHandler): value in ('a', 'A', 'i', 'I', 'd', 'D'): type = value.upper() fp, retrlen = fw.retrfile(file, type) + headers = "" + mtype = mimetypes.guess_type(req.get_full_url())[0] + if mtype: + headers += "Content-Type: %s\n" % mtype if retrlen is not None and retrlen >= 0: - sf = StringIO('Content-Length: %d\n' % retrlen) - headers = mimetools.Message(sf) - else: - headers = noheaders() + headers += "Content-Length: %d\n" % retrlen + sf = StringIO(headers) + headers = mimetools.Message(sf) return addinfourl(fp, headers, req.get_full_url()) except ftplib.all_errors, msg: raise IOError, ('ftp error', msg), sys.exc_info()[2]