一.下载文件方式
1.通过http下载文件
curl -s -X POST -H 'Content-Type: application/json' -d '{"serviceName": "ALL"}' -o file.txt http://example.com/download
生成文件file.txt
若不想指定保存文件名,则将-o file.txt替换成使用-O,生成的文件名:download
2.通过FTP下载文件
curl -u daniel:secret ftp://example.com/download -o file.txt
curl ftp://daniel:secret@example.com/download -o file.txt
3.通过SFTP下载文件
curl -k -u user:pwd -O "sftp://127.0.0.1:16000/temp/file1.txt"
-k表示允许不安全的连接
二.上传文件方式
1.以http的报文体上传报文
curl -X POST -H 'Content-Type: application/json' -d '@/temp/file1.txt' http://example.com/upload
使用-d需要在文件将加@
-d 等同于--data --data-ascii
若文件是二进制的,则要使用--data-binary
也可以使用-T '/temp/file1.txt'替代-d '@/temp/file1.txt'
curl -X POST -H 'Content-Type: application/json' -T '/temp/file1.txt' http://example.com/upload
也可以使用标准输入作为curl的输入,此时使用 -d @-
cat /temp/file1.txt | curl -X POST -H 'Content-Type: application/json' -d @- http://example.com/upload
2.以http的form形式上传报文
curl -v http://example.com/upload
-F "fileName1=@/D/Temp/temp.txt"
-F "uploadName1=temp.txt"
-F "fileName2=@/D/Temp/report.txt"
-F "uploadName2=report.txt"
具体介绍可以查看:HTTP:http上传文件的原理及java处理方法的介绍
3.给FTP上传报文
curl -T localfile ftp://ftp.example.com/dir/path/remote-file
此时FTP上保存的文件名为remote-file
curl -T localfile ftp://ftp.example.com/dir/path/
此时FTP上保存的文件名为localfile
4.给SFTP上传报文
curl -k -u user:pwd -T localfile sftp://127.0.0.1:16000/temp/remote-file
此时SFTP上保存的文件名为remote-file
curl -k -u user:pwd -T localfile sftp://127.0.0.1:16000/temp/
此时SFTP上保存的文件名为localfile
参考文档