[Twisted-Python] reading multipart/form-data headers

Glyph Lefkowitz glyph at twistedmatrix.com
Thu Aug 11 14:52:21 MDT 2016


> On Aug 11, 2016, at 8:55 AM, Burak Arslan <burak.arslan at arskom.com.tr> wrote:
> 
> Hello All,
> 
> You can find a sample HTTP POST request using HTTP multipart/form-data at the end of this message.
> 
> The server that handles this request is using twisted so I end up with a Request object. Is there a way I can extract the file name ("image008.jpg") from this stream? I'm looking at the source of cgi.parse_multipart() and it seems to be ignored.
> 
Sadly Twisted just calls into cgi.parse_multipart and so it is in fact ignored.  You might be able to re-parse the request body (request.content.seek(0); request.content.read()) with something like <https://docs.python.org/2.7/library/email.mime.html#email.mime.multipart.MIMEMultipart <https://docs.python.org/2.7/library/email.mime.html#email.mime.multipart.MIMEMultipart>> or <https://github.com/mailgun/flanker <https://github.com/mailgun/flanker>> to extract more information about the MIME.

It would definitely be better for Twisted to have more robust facilities for dealing with request inputs, particularly to be able to process large uploads as a stream rather than an individual message (and such an API for form post uploads should obviously include the content disposition filename).  See <https://twistedmatrix.com/trac/ticket/288 <https://twistedmatrix.com/trac/ticket/288>> for more discussion :).

Thanks for using Twisted, and sorry about this shortcoming.

-g



-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20160811/d27c5c14/attachment-0002.html>


More information about the Twisted-Python mailing list