Загрузка изображения с помощью PHP curl с параметрами дает '415'
Это описание того, что мне нужно сделать (я знаю, что это расплывчато, но это все, что я получил):
Изображения могут быть загружены путем отправки запроса HTTP PUT на URI изображения. Тело запроса должно содержать данные изображения или, если актуальна дата последнего изменения изображения, документ XML или JSON, обертывающий изображение. В последнем случае корневой узел XML должен называться "изображением", и он должен содержать узлы "lastModified" (с указанием даты в виде метки времени Unix) и "данные", содержащие данные изображения. Представление JSON должно содержать два значения в качестве полей объекта. Тип содержимого должен быть "application/x-www-form-urlencoded", и запрос должен включать в себя параметры формы, размер файла, имя файла, каталог и последний измененный. Ответом будет ActionResponse, и он проинформирует Клиента о любых проблемах, которые могут возникнуть при попытке загрузки.
Это мой код до сих пор:
function addImage($path) {
global $serviceURL;
global $curlhandle;
$request_headers = array("X-Requested-With: XMLHttpRequest", "Accept: application/json", "Content-Type: application/x-www-form-urlencoded; charset=UTF-8");
curl_setopt($curlhandle, CURLOPT_POSTFIELDS, $request_param);
curl_setopt($curlhandle, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($curlhandle, CURLOPT_PUT, 1);
curl_setopt($curlhandle, CURLOPT_URL, $serviceURL."image/".$path);
$post = array(
"file_box" => "@/Users/steven/Desktop/test.jpg"
);
curl_setopt($curlhandle, CURLOPT_POSTFIELDS, $post);
$data=curl_exec($curlhandle);
var_dump($data);
}
Эти коды в итоге дают мне следующую ошибку:
HTTP/1.1 415 Unsupported Media Type
Кто-нибудь, кто мог бы помочь?
1 ответ
В вашем описании говорится, что вы должны отправить HTTP PUT, но ваш пример отправляет многокомпонентную формпост с использованием POST.
В описании также упоминается использование XML и JSON, в то время как ваш код, похоже, даже не пытается это сделать.