From cURL's manual:
-T, --upload-file <file>
This transfers the specified local file to the remote URL.
It seems you are looking for the upload functionality. In HTTPie, depending on what the host server is expecting, you have multiple ways to upload a file:
A) Redirected input:
$ http PUT httpbin.org/put Content-Type:image/png < /images/photo.png
B) Request data from a filename (automatically sets the Content-Type
header):
$ http PUT httpbin.org/put @/images/photo.png
C) Form file upload:
$ http --form PUT httpbin.org/put photo=@/images/photo.png
Original answer by Jakub Roztocil.