ファイルアップロードフィールドを持つ multipart/form-data の php curl で json データを投稿したいです。私はアクションでcakephp 2でこれを試しました:
public function json_post(){
$this->autoRender = false;
debug('json post test');
$data = array('Post' => array(
'subject' => 'test subject content',
'body' => 'test body content'
'fileName' => '/Users/mar/Pictures/cow_wall_90.jpg'
));
$data_string = json_encode($data);
$ch = curl_init('http://www.mydomain.com/posts/phone_upload.json');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
//'Content-Type: multipart/form-data',
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
debug($result);
}
fileName は、フォームのファイル アップロード フィールドに相当します。件名と本文は、フォームのテキスト フィールドに相当します。何かがデータ配列または Content-Type にある可能性がありますが、問題が見つかりません。
助けてくれてありがとう、よろしく、マーティン