上传单个文件

CURL 是一个强大的向服务器发送请求的工具, 尤其是在测试 API 的时候。


很多人像寻常表单一样使用了 -X POST 方式来使用 CURL 去上传文件,但实际上这是错误的。


正确的方式是使用 -F (--form) 来上传文件,这样才会给请求添加 enctype="multipart/form-data" 参数。


$ curl -F 'data=@path/to/local/file’ UPLOAD_ADDRES


例如, 如果我想向服务器 http://localhost/upload 上传位于/home/petehouston/hello.txt的文件,并将上传的文件的参数命名为 img_avatar, 我可以这样发送请求,


$ curl -F 'img_avatar=@/home/petehouston/hello.txt' http://localhost/upload

上传多个文件

想要同时上传多个文件的话,只需要添加多个 -F 选项就可以了。


$ curl -F 'fileX=@/path/to/fileX' -F 'fileY=@/path/to/fileY' ... http://localhost/upload


上传文件数组


想要上传文件数组的话,只需要添加多个 -F 选项并命名成相同名字的数组就可以了。


$ curl -F 'files[]=@/path/to/fileX' -F 'files[]=@/path/to/fileY' ... http://localhost/upload


就是这么简单,开始享用吧:)