使用cURL上传带有文件的POST数据
P粉541796322
P粉541796322 2023-08-21 12:39:00
0
2
341

我想使用cURL不仅可以在HTTP POST中发送数据参数,还可以上传具有特定表单名称的文件。我该如何做到这一点?

HTTP POST参数:

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

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

我已经找到了cURL命令的一部分,如下所示:

curl -d "userid=1&filecomment=这是一个图片文件" --data-binary @"/home/user1/Desktop/test.jpg" localhost/uploader.php

我遇到的问题如下:

注意:在/var/www/uploader.php中未定义索引:image

问题是我在PHP脚本中使用$_FILES['image']来接收文件。

我应该如何相应地调整我的cURL命令?

P粉541796322
P粉541796322

全部回复 (2)
P粉189606269

将用户id作为路径变量捕获(推荐):

curl -i -X POST -H "Content-Type: multipart/form-data" -F "data=@test.mp3" http://mysuperserver/media/1234/upload/

将用户id作为表单的一部分捕获:

curl -i -X POST -H "Content-Type: multipart/form-data" -F "data=@test.mp3;userid=1234" http://mysuperserver/media/upload/

或者:

curl -i -X POST -H "Content-Type: multipart/form-data" -F "data=@test.mp3" -F "userid=1234" http://mysuperserver/media/upload/
    P粉621033928

    您需要使用-F选项:
    -F/--form 指定HTTP多部分POST数据 (H)

    请尝试以下内容:

    curl \ -F "userid=1" \ -F "filecomment=这是一个图片文件" \ -F "image=@/home/user1/Desktop/test.jpg" \ localhost/uploader.php
      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!