1

这是对我需要做的事情的描述(我知道这很模糊,但这就是我所得到的)

可以通过向图像 URI 发送 HTTP PUT 请求来上传图像。请求的正文应包含图像数据,或者如果图像的最后修改日期相关,则应包含包装图像的 XML 或 JSON 文档。在后一种情况下,XML 根节点应该称为“image”,它应该包含节点“lastModified”(将日期指定为 Unix 时间戳)和包含图像数据的“data”。JSON 表示应该包含两个值作为对象字段。内容类型应为“application/x-www-form-urlencoded”,请求应包括表单参数文件大小、文件名、目录和 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

有谁能帮忙吗?

4

1 回答 1

0

您的描述说您应该发送 HTTP PUT,但您的示例使用 POST 发送多部分表单。

该描述还提到使用 XML 和 JSON,而您的代码似乎甚至没有尝试这样做。

于 2011-08-24T12:45:50.333 回答