When submitting forms and uploading files, they are usually sent with the multipart/form-data
encoding.
We already saw how to create data encoded in multipart/form-data
, and submit it to an endpoint, but how can we handle incoming data in such a format?
The cgi.FieldStorage
class in the standard library already provides all the machinery required to parse multipart data and send it back to you in a way that is easy to handle.
We will create a simple web application (based on WSGIApplication
) to show how cgi.FieldStorage
can be used to parse the uploaded file and show it back to the user:
import cgi from web_06 import WSGIApplication import base64 app = WSGIApplication() @app.route('/') def index(req, resp): return ( b'<form action="/upload" method="post" enctype="multipart/form- data">' b' <input type="file" name="uploadedfile"/>' b' <input type="submit" value="Upload">' b'</form...