How to use the cURL command to do a POST data to fields on Linux or Unix

Posted on in Categories , , , , , , , last updated May 28, 2017

How do I use the cURL command on Linux or Unix to post data i.e. upload something on Linux or Unix? How do I make a POST request with the cURL Linux command-line to upload file?

curl is a good tool to transfer data from or to a server especially making requests, testing requests and APIs from the command line. This tutorial shows how to upload files with curl command line on Linux or UNIX-like system.

Upload files with CURL

The syntax is:
curl -F "[email protected]' https://url/name
To post data with fields:
curl --data "f=foo&d=bar" https://url/name
For example, if I want to upload a file at /home/petehouston/hello.txt to the server http://localhost/upload which processes file input with form parameter named img_avatar, I will make request like this,
curl -F 'img_name=@/home/nixcraft/welcome.jpg' https://server1.cyberciti.biz/cdnimages/
To upload multiple files, run:
curl -F 'foo=@/path/to/img1.jpg' -F 'bar=@/path/to/img2.jpg' https://server1.cyberciti.biz/form/
In this example, I am uploading a file named ansible-setup.png to imgur:
curl -H "Referer: https://imgur.com/upload" -F "[email protected];type=image/png" https://imgur.com/upload
Sample outputs:

{"data":{"hashes":["uZbpdKC"],"hash":"uZbpdKC","deletehash":"XXXXXXXX","album":false,"edit":false,"gallery":null,"animated":false,"height":112,"width":599,"ext":".png","msid":"8aaa97a2e5f6489cf6f65d086d47448b"},"success":true,"status":200

You can see uploaded url here. Pass the -v switch to see more info including progress:

Fig.01: curl command used to upload a file to imgur
Fig.01: curl command used to upload a file to imgur

See curl command man page for more information:
man curl

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.