From: Pierce Lopez Date: Tue, 12 Sep 2017 20:57:50 +0000 (-0400) Subject: file_upload demo: write multi-part framing in one call X-Git-Tag: v5.0.0~57^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2149%2Fhead;p=thirdparty%2Ftornado.git file_upload demo: write multi-part framing in one call --- diff --git a/demos/file_upload/file_uploader.py b/demos/file_upload/file_uploader.py index f4af78c5f..967896941 100644 --- a/demos/file_upload/file_uploader.py +++ b/demos/file_upload/file_uploader.py @@ -34,13 +34,15 @@ def multipart_producer(boundary, filenames, write): for filename in filenames: filename_bytes = filename.encode() - yield write(b'--%s\r\n' % (boundary_bytes,)) - yield write(b'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % - (filename_bytes, filename_bytes)) - mtype = mimetypes.guess_type(filename)[0] or 'application/octet-stream' - yield write(b'Content-Type: %s\r\n' % (mtype.encode(),)) - yield write(b'\r\n') + buf = ( + (b'--%s\r\n' % boundary_bytes) + + (b'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % + (filename_bytes, filename_bytes)) + + (b'Content-Type: %s\r\n' % mtype.encode()) + + b'\r\n' + ) + yield write(buf) with open(filename, 'rb') as f: while True: # 16k at a time. @@ -95,7 +97,6 @@ def put(filenames): method='PUT', headers=headers, body_producer=producer) - print(response)