1

これは私がしなければならないことの説明です(あいまいであることはわかっていますが、私が得たのはそれだけです)

HTTP PUT リクエストを画像 URI に送信することで、画像をアップロードできます。リクエストの本文には、画像データを含めるか、画像の最終更新日が関連している場合は、画像をラップする XML または JSON ドキュメントを含める必要があります。後者の場合、XML ルート ノードは「image」と呼ばれ、ノード「lastModified」(日付を Unix タイムスタンプとして指定) とイメージ データを含む「data」を含む必要があります。JSON 表現には、オブジェクト フィールドとして 2 つの値が含まれている必要があります。コンテンツ タイプは「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

助けてくれる人はいますか?

4

1 に答える 1

0

あなたの説明はHTTPPUTを送信する必要があると言っていますが、あなたの例はPOSTを使用してマルチパートフォームポストを送信します。

説明には、XMLとJSONの使用についても言及されていますが、コードはそれを試みていないようです。

于 2011-08-24T12:45:50.333 に答える