使用PHP卷曲上传图片,参数为'415'

时间:2011-06-27 14:45:19

标签: php curl fsi

这是我需要做的描述(我知道它含糊不清,但这就是我所得到的)

可以通过向图像URI发送HTTP PUT请求来上载图像。请求的主体应包含图像数据,或者如果图像的最后修改日期相关,则包含图像的XML或JSON文档。在后一种情况下,XML根节点应该被称为“图像”,它应该包含节点“lastModified”(将日期指定为Unix时间戳)和包含图像数据的“数据”。 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

任何可以提供帮助的人?

1 个答案:

答案 0 :(得分:0)

您的描述说您应该发送HTTP PUT,但您的示例使用POST发送multipart formpost。

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