这是我需要做什么的描述(我知道这很模糊,但这是我所能做的):
可以通过向图像URI发送HTTP PUT请求来上传图像。请求的主体应该包含图像数据,或者如果图像的最后修改日期是相关的,则应该包含包装图像的XML或JSON文档。在后一种情况下,XML根节点应该被称为"image",它应该包含节点"lastModified"(将日期指定为Unix时间戳)和包含图像数据的"data"。JSON表示应该包含这两个值作为对象字段。内容类型应为"application/x-www-form-urlencoded",请求应包括表单参数filesize、filename、dir和lastmodified。响应将是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
有谁能帮忙吗?
您的描述说您应该发送一个HTTPPUT,但您的示例使用POST发送了一个多部分的formpost。
描述中还提到了使用XML和JSON,而您的代码似乎甚至没有尝试这样做。