How to use 'python requests multipart form data' in Python

Every line of 'python requests multipart form data' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your Python code is secure.

All examples are scanned by Snyk Code

By copying the Snyk Code Snippets you agree to
12def encode_multipart(data, charset='utf-8'):
13 # Ported from Werkzeug testing.
14 boundary = '---------------Boundary%s' % uuid4().hex
15 body = BytesIO()
16
17 def write(string):
18 body.write(string.encode(charset))
19
20 if isinstance(data, dict):
21 data = data.items()
22
23 for key, values in data:
24 if not isinstance(values, (list, tuple)):
25 values = [values]
26 for value in values:
27 write('--%s\r\nContent-Disposition: form-data; name="%s"' %
28 (boundary, key))
29 reader = getattr(value, 'read', None)
30 if reader is not None:
31 filename = getattr(value, 'filename',
32 getattr(value, 'name', None))
33 content_type = getattr(value, 'content_type', None)
34 if content_type is None:
35 content_type = filename and \
36 mimetypes.guess_type(filename)[0] or \
37 'application/octet-stream'
38 if filename is not None:
39 write('; filename="%s"\r\n' % filename)
40 else:
41 write('\r\n')
42 write('Content-Type: %s\r\n\r\n' % content_type)
43 while 1:
44 chunk = reader(16384)
45 if not chunk:
46 break
47 body.write(chunk)
48 else:
49 if not isinstance(value, str):
50 value = str(value)
51 else:
52 value = value.encode(charset)
53 write('\r\n\r\n')
54 body.write(value)
55 write('\r\n')
56 write('--%s--\r\n' % boundary)
57
58 body.seek(0)
59 content_type = 'multipart/form-data; boundary=%s' % boundary
60 return body.read(), content_type

Related snippets