ошибка 400 в php curl составная часть/форма — локальный сохраненный pdf-файл

#php #curl #multipartform-data

Вопрос:

пожалуйста, у меня проблема с PHP curl multipart/form.

Мне нужно подключиться к API и отправить ему данные в качестве параметров. одним из параметров должен быть файл (pdf). но я отправляю его не из HTML-формы, а на FTP-сервере. весь запрос в PHP должен быть составным / форм-данными HTTP POST.

МОЙ код:

 $url='API-URL'; $pdf = $_SERVER['DOCUMENT_ROOT'] . '/path/api.pdf';  $data = array(  'login' =gt; $username,  'password' =gt; $password  'file' =gt; "@" . $pdf.";type=aplication/pdf" );  $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));  curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);  $server_output = curl_exec($ch); $curl_error = curl_error($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); var_dump($httpCode); var_dump($curl_error); curl_close ($ch);  if(200 == $httpCode) {  //...  }  else {  echo "httpCode: ".$httpCode."n";  var_dump($curl_error);  exit();  }  

но я все равно получаю код ошибки 400. Что я делаю не так? Спасибо вам за любой совет.