如何在php curl中指定--form参数和PUT参数?

问题描述:

I have to execute this curl command in php:

curl --digest -u YourApiKey:YourApiSecret "http://api.moodstocks.com/v2/ref/YourID" --form image_file=@"image.jpg" -X PUT

So far I have this:

function ms_addimage($file, $hash_id){

        $postdata = array("image_file" => "@/".realpath($file));

        $opts[CURLOPT_URL] = $this->API_BASE_URL . "ref/".$hash_id;
        $opts[CURLOPT_VERBOSE] =1;
        $opts[CURLOPT_POST] =true;
        $opts[CURLOPT_POSTFIELDS] =$postdata;


        $ch = curl_init(); 
        curl_setopt_array($ch, $opts);

        $raw_resp = curl_exec($ch);

        echo "Response " . $raw_resp . "
";


        curl_close($ch);
    }

The file path is correct but I am missing something. How do I pass the --form parameter and the PUT argument?

So I was missing the following:

$opts[CURLOPT_CUSTOMREQUEST] = "PUT";

Now it is working.