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