来自man curl
:
-F, --form <name=content>
(HTTP) This lets curl emulate a filled-in form in
which a user has pressed the submit button. This
causes curl to POST data using the Content-Type
multipart/form-data according to RFC 2388. This
enables uploading of binary files etc. To force the
'content' part to be a file, prefix the file name with
an @ sign. To just get the content part from a file,
prefix the file name with the symbol <. The difference
between @ and < is then that @ makes a file get
attached in the post as a file upload, while the <
makes a text field and just get the contents for that
text field from a file.
Example, to send your password file to the server,
where 'password' is the name of the form-field to
which /etc/passwd will be the input:
curl -F password=@/etc/passwd www.mypasswords.com
To read content from stdin instead of a file, use - as
the filename. This goes for both @ and < constructs.
You can also tell curl what Content-Type to use by
using 'type=', in a manner similar to:
curl -F "web=@index.html;type=text/html" url.com
or
curl -F "name=daniel;type=text/foo" url.com
You can also explicitly change the name field of a
file upload part by setting filename=, like this:
curl -F "file=@localfile;filename=nameinpost" url.com
See further examples and details in the MANUAL.
This option can be used multiple times.