Как использовать PHP cURL для отправки изображений с правильным Content-Type? - PullRequest
4 голосов
/ 02 ноября 2010

Цель:

Я хочу отправить несколько изображений, используя multipart / form-data. Ниже приведен фрагмент моего кода.

Проблема:

На одном ПК составное вложение отправляется правильным заголовком MIME Content-Type: image / jpeg, а на другом ПК заголовок MIME - Content-Type: application / octet.

Вопрос:

Как заставить cURL задать правильный заголовок Content-Type для содержимого MIME?

$ch = curl_init();

$params = array('name' => '@D:\globe.jpg');  

$base_url = "https://example.com"."?".varEncode($test_data);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_URL,$base_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch);

1 Ответ

17 голосов
/ 02 ноября 2010

Используйте опцию CURLOPT_HTTPHEADER:

curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: image/jpeg"));

Поэтому, указав заголовки Content-Type специально для загрузки файлов, используйте:

$params = array('name'=>'@D:\globe.jpg;type=image/jpeg');
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...