mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Add content-type header to ftp URLs (SF patch #454553)
Modify rfc822.formatdate() to always generate English names, regardless of locale. This is required by RFC 1123. In open_local_file() of urllib and urllib2, use new formatdate() from rfc822.
This commit is contained in:
parent
53da317801
commit
6d8c1aabff
3 changed files with 27 additions and 14 deletions
|
@ -96,9 +96,12 @@ import urlparse
|
|||
import md5
|
||||
import mimetypes
|
||||
import mimetools
|
||||
import rfc822
|
||||
import ftplib
|
||||
import sys
|
||||
import time
|
||||
import os
|
||||
import stat
|
||||
import gopherlib
|
||||
import posixpath
|
||||
|
||||
|
@ -914,16 +917,22 @@ class FileHandler(BaseHandler):
|
|||
|
||||
# not entirely sure what the rules are here
|
||||
def open_local_file(self, req):
|
||||
mtype = mimetypes.guess_type(req.get_selector())[0]
|
||||
headers = mimetools.Message(StringIO('Content-Type: %s\n' \
|
||||
% (mtype or 'text/plain')))
|
||||
host = req.get_host()
|
||||
file = req.get_selector()
|
||||
localfile = url2pathname(file)
|
||||
stats = os.stat(localfile)
|
||||
size = stats[stat.ST_SIZE]
|
||||
modified = rfc822.formatdate(stats[stat.ST_MTIME])
|
||||
mtype = mimetypes.guess_type(file)[0]
|
||||
stats = os.stat(localfile)
|
||||
headers = mimetools.Message(StringIO(
|
||||
'Content-Type: %s\nContent-Length: %d\nLast-modified: %s\n' %
|
||||
(mtype or 'text/plain', size, modified)))
|
||||
if host:
|
||||
host, port = splitport(host)
|
||||
if not host or \
|
||||
(not port and socket.gethostbyname(host) in self.get_names()):
|
||||
return addinfourl(open(url2pathname(file), 'rb'),
|
||||
return addinfourl(open(localfile, 'rb'),
|
||||
headers, 'file:'+file)
|
||||
raise URLError('file not on local host')
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue