How can I send POST request with a csv or a text file to the server running on a localhost using cURL. 
I have tried curl -X POST -d @file.csv http://localhost:5000/upload but I get 

{
      "message": "The browser (or proxy) sent a request that this server could not understand."
  }

My server is flask_restful API. Thanks a lot in advance.
Curl's default Content-Type is application/x-www-form-urlencoded so your problem is probably that the data you are POSTing is not actually form data. It might work if you set the content type header properly:

-H "Content-Type: text/csv"

Though it does depend on the server.
POST csv/Text file using cURL