from .auth import HTTPBasicAuth
from .cookies import cookiejar_from_dict, get_cookie_header
+from .packages.urllib3.fields import RequestField
from .packages.urllib3.filepost import encode_multipart_formdata
from .packages.urllib3.util import parse_url
from .exceptions import (
for (k, v) in files:
# support for explicit filename
ft = None
+ fh = None
if isinstance(v, (tuple, list)):
if len(v) == 2:
fn, fp = v
- else:
+ elif len(v) == 3:
fn, fp, ft = v
+ else:
+ fn, fp, ft, fh = v
else:
fn = guess_filename(v) or k
fp = v
if isinstance(fp, bytes):
fp = BytesIO(fp)
- if ft:
- new_v = (fn, fp.read(), ft)
- else:
- new_v = (fn, fp.read())
- new_fields.append((k, new_v))
+ rf = RequestField(name=k, data=fp.read(),
+ filename=fn, headers=fh)
+ rf.make_multipart(content_type=ft)
+ new_fields.append(rf)
body, content_type = encode_multipart_formdata(new_fields)