使用curl上传带有文件的POST数据

使用curl上传带有文件的POST数据

我想使用cURL不仅可以在HTTP POST中发送数据参数,还可以上传具有特定表单名称的文件。我应该怎么做呢?

HTTP Post参数:

userid = 12345 filecomment =这是一个图像文件

HTTP文件上传:文件位置= /home/user1/Desktop/test.jpg file = image的表单名称(对应于PHP端的$ _FILES ['image'])

我认为cURL命令的一部分如下:

curl -d "userid=1&filecomment=This is an image file" --data-binary @"/home/user1/Desktop/test.jpg" localhost/uploader.php

我得到的问题如下:

Notice: Undefined index: image in /var/www/uploader.php

问题是我使用$ _FILES ['image']来获取PHP脚本中的文件。

如何相应调整cURL命令?


慕仙森
浏览 7691回答 3
3回答

子衿沉夜

你需要使用-F选项:-F/--form <name=content> Specify HTTP multipart POST data (H)试试这个:curl \&nbsp; -F "userid=1" \&nbsp; -F "filecomment=This is an image file" \&nbsp; -F "image=@/home/user1/Desktop/test.jpg" \&nbsp; localhost/uploader.php

呼如林

将用户标识捕获为路径变量(推荐):curl&nbsp;-i&nbsp;-X&nbsp;POST&nbsp;-H&nbsp;"Content-Type:&nbsp;multipart/form-data"&nbsp;-F&nbsp;"data=@test.mp3"&nbsp;http://mysuperserver/media/1234/upload/将用户标识作为表单的一部分:curl&nbsp;-i&nbsp;-X&nbsp;POST&nbsp;-H&nbsp;"Content-Type:&nbsp;multipart/form-data"&nbsp;-F&nbsp;"data=@test.mp3;userid=1234"&nbsp;http://mysuperserver/media/upload/要么:curl&nbsp;-i&nbsp;-X&nbsp;POST&nbsp;-H&nbsp;"Content-Type:&nbsp;multipart/form-data"&nbsp;-F&nbsp;"data=@test.mp3"&nbsp;-F&nbsp;"userid=1234"&nbsp;http://mysuperserver/media/upload/
打开App,查看更多内容
随时随地看视频慕课网APP