Я пытаюсь отправить изображение с помощью cURL в PHP с использованием заголовка multipart/form-data, поскольку API, который я отправляю, ожидает, что изображение будет отправлено как многочастная форма.
У меня нет проблем с обращением к API с другими запросами; только публикация изображения является проблемой.
Я использую эту форму на стороне клиента:
<form action="http://myServerURL" method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="Submit">
</form>
и это сервер, на который я отправляю (здесь я пытаюсь отправить эти данные в API):
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $imgRawData); // <-- raw data here hm?
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);
curl_setopt( $ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1); <-- using this as I wanted to check if HTTPHEADER is set
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); <-- setting content-type header?
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
// i get response from the server
$response = curl_exec( $ch );
// with this I can check what kind of content type the last request had?
$requestContentType = curl_getinfo($ch,CURLINFO_CONTENT_TYPE);
echo "<br>request Content Type was:".$requestContentType."<br>";
curl_close($ch);
echo "<br><b>SERVER POST IMAGE RESPONSE:</b><br>";
echo $response;
С приведенным ниже кодом я могу видеть заголовки своих запросов:
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
var_dump(curl_getinfo($ch));
Содержимое типа в заголовках запроса отображается правильно. Но похоже, что изображение не отправляется правильно, как ожидал API. К сожалению, у меня нет доступа к API...
Любая помощь приветствуется, спасибо