php5.4のcurl_setoptでmultipart送信できない人へ
オプションの指定の順番が悪いかも。
私の場合、multipartになるはずなのに、application/x-www-form-urlencodedになっていた。
ファイル送りたいのに文字列送信てぇえ
curl_setopt php PHP: curl_setopt - Manual
▼これはmultipartになる。
curl_setopt_array($this->_curl, array( CURLOPT_URL => 'http://hogehoge/fugafuga/', CURLOPT_POST => true, CURLOPT_POSTFIELDS => $data, CURLINFO_HEADER_OUT => true ));
▼これはapplication/x-www-form-urlencodedになる。
curl_setopt_array($this->_curl, array( CURLOPT_URL => 'http://hogehoge/fugafuga/', CURLOPT_POSTFIELDS => $data, CURLOPT_POST => true, CURLINFO_HEADER_OUT => true ));
何が違うかと言うと、CURLOPT_POST の後に CURLOPT_POSTFIELDS を指定しているか否か。
原因は分かりませんが、POST送信だよ、って指定の前に値を渡しているので、上から解釈していくと間違えるのもまあ納得。
エラー解消に付き合ってくれた、まみゅりんありがとう。
静的な値は先に指定すべきですな。
良い勉強になりました。