Requests - File Upload


Advertisements

In this chapter, we will upload a file using request and read the contents of the file uploaded. We can do it using the files param as shown in the example below.

We will use the http://httpbin.org/post to upload the file.

Example

import requests
myurl = 'https://httpbin.org/post'
files = {'file': open('test.txt', 'rb')}
getdata = requests.post(myurl, files=files)
print(getdata.text)  

Test.txt

File upload test using Requests

Output

E:\prequests>python makeRequest.py
{
   "args": {},
   "data": "",
   "files": {
      "file": "File upload test using Requests"
   },
   "form": {},
   "headers": {
      "Accept": "*/*",
      "Accept-Encoding": "gzip, deflate",
      "Content-Length": "175",
      "Content-Type": "multipart/form-data; 
      boundary=28aee3a9d15a3571fb80d4d2a94bfd33",
      "Host": "httpbin.org",
      "User-Agent": "python-requests/2.22.0"
   },
   "json": null,
   "origin": "117.223.63.135, 117.223.63.135",
   "url": "https://httpbin.org/post"
}

It is also possible to send the contents of the file as shown below−

Example

import requests
myurl = 'https://httpbin.org/post'
files = {'file': ('test1.txt', 'Welcome to Howcodex')}
getdata = requests.post(myurl, files=files)
print(getdata.text)

Output

E:\prequests>python makeRequest.py
{
   "args": {},
   "data": "",
   "files": {
      "file": "Welcome to Howcodex"
   },
   "form": {},
   "headers": {
      "Accept": "*/*",
      "Accept-Encoding": "gzip, deflate",
      "Content-Length": "170",
      "Content-Type": "multipart/form-data; 
      boundary=f2837238286fe40e32080aa7e172be4f",
      "Host": "httpbin.org",
      "User-Agent": "python-requests/2.22.0"
   },
   "json": null,
   "origin": "117.223.63.135, 117.223.63.135",
   "url": "https://httpbin.org/post"
}
Advertisements