This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

作者 gvanrossum
收信人 MLModel, georg.brandl, ggenellina, gvanrossum
日期 2010-06-09.16:57:13
SpamBayes Score 1.872523e-05
Marked as misclassified
Message-id <1276102635.71.0.0321536018137.issue8077@psf.upfronthosting.co.za>
In-reply-to
内容
The example works for me if I make this change:

--- Lib/cgi.py	(revision 81862)
+++ Lib/cgi.py	(working copy)
@@ -608,7 +608,7 @@
         parser = email.parser.FeedParser()
         # Create bogus content-type header for proper multipart parsing
         parser.feed('Content-Type: %s; boundary=%s\r\n\r\n' % (self.type, ib))
-        parser.feed(self.fp.read())
+        parser.feed(self.fp.read(self.length))
         full_msg = parser.close()
         # Get subparts
         msgs = full_msg.get_payload()


However this seems iffy to me because the content length presumably counts bytes whereas self.fp seems to be a text file, but since most HTTP clients don't close the connection, without some kind of boundary on the read() call it just hangs forever.

Also someone pointed out to me offline that this change may be needed, separately (though I haven't confirmed this yet):

--- Lib/cgi.py	(revision 81862)
+++ Lib/cgi.py	(working copy)
@@ -233,6 +233,7 @@
         lines = []
         while 1:
             line = fp.readline()
+            line = line.decode()
             if not line:
                 terminator = lastpart # End outer loop
                 break
历史
日期 用户 动作 参数
2010-06-09 16:57:16gvanrossum修改recipients: + gvanrossum, georg.brandl, ggenellina, MLModel
2010-06-09 16:57:15gvanrossum修改messageid: <1276102635.71.0.0321536018137.issue8077@psf.upfronthosting.co.za>
2010-06-09 16:57:13gvanrossum链接issue8077 messages
2010-06-09 16:57:13gvanrossum创建