cURL を使用してファイルを含む POST データをアップロードする 質問する

cURL を使用してファイルを含む POST データをアップロードする 質問する

cURL を使用して、HTTP POST でデータ パラメータを送信するだけでなく、特定のフォーム名でファイルをアップロードしたいと思います。どうすればよいでしょうか?

HTTP Post パラメータ:

userid = 12345 filecomment = これは画像ファイルです

HTTP ファイルアップロード: ファイルの場所 = /home/user1/Desktop/test.jpg ファイルのフォーム名 = 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

問題は、PHP スクリプトでファイルを取得するために $_FILES['image'] を使用していることです。

cURL コマンドを適切に調整するにはどうすればよいでしょうか?

ベストアンサー1

このオプションを使用する必要があります-F:
-F/--form <name=content> Specify HTTP multipart POST data (H)

これを試して:

curl \
  -F "userid=1" \
  -F "filecomment=This is an image file" \
  -F "image=@/home/user1/Desktop/test.jpg" \
  localhost/uploader.php

おすすめ記事