How to use the cURL command to do a POST data to fields on Linux or Unix
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@example.com' 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.sxi.io/cdnimages/ To upload multiple files, run: curl -F 'foo=@/path/to/img1.jpg' -F 'bar=@/path/to/img2.jpg' https://server1.sxi.io/form/ In this example, I am uploading a file named ansible-setup.png to imgur: curl -H "Referer: https://imgur.com/upload" -F "Filedatafirstname.lastname@example.org;type=image/png" https://imgur.com/upload Sample outputs:
The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.