Reputation: 20856
Im trying to upload a huge file using request toolbelt. The file is collected from a HTML form using Python Bottle framework
uploadfile = request.files.get('File Upload')
payload = MultipartEncoder({uploadfile.filename:uploadfile.file.read()})
r = requests.post(url,
files=payload,auth=(username,password))
Error
TypeError: 'MultipartEncoder' object is not iterable
Question: 1. How to send the collected file object?
Upvotes: 2
Views: 3225
Reputation: 3891
When using a MultipartEncoder
, I send the information as the post data
attribute as seen in their examples:
https://pypi.python.org/pypi/requests-toolbelt/0.3.0
Here is an example script I would use:
from requests_toolbelt import MultipartEncoder
import requests
uploadfile = open("./example_upload.dat", "r")
payload = MultipartEncoder({uploadfile.name: uploadfile})
r = requests.post(
"http://example.com",
data=payload,
auth=("exampleuser","examplepassword"),
headers={"Content-Type": payload.content_type})
Upvotes: 1