#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. Что я делаю не так? Спасибо вам за любой совет.