14

I am trying to upload a file using requests. I need to upload a PDF file and at the same time send some other data to the form like the author's name.

I tried this:

requests.get(url, files = {"file":open("file.txt"), "author" : "me" })

But it doesn't send data to the form.

Burhan Khalid
  • 169,990
  • 18
  • 245
  • 284
Dennis Ritchie
  • 630
  • 1
  • 9
  • 20

1 Answers1

32

So I understand that you want to upload to a URL, a pdf file along with some extra parameters.

First error that you have is you are using .get() and not .post().

I am using samples from the documentation, which you should go through. This should get you started:

>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('somefile.pdf', 'rb')}
>>> values = {'author': 'John Smith'}
>>> r = requests.post(url, files=files, data=values)
Burhan Khalid
  • 169,990
  • 18
  • 245
  • 284