ホームページ >Java >&#&チュートリアル >Jersey RESTful Webサービスでファイルと付随データを同時にアップロードするにはどうすればよいですか?

Jersey RESTful Webサービスでファイルと付随データを同時にアップロードするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 22:50:11465ブラウズ

How to Upload Files and Accompanying Data Simultaneously in a Jersey RESTful Web Service?

Jersey RESTful Web サービスでの付随データを含むファイルのアップロード

システムで従業員を作成するとき、画像とともに画像を含めることができます。彼らの個人情報。これを個別の REST 呼び出しで実行することもできますが、1 回の呼び出しで実行する方が効率的です。この記事では、この問題の解決策を提供し、ファイルと従業員データの両方を同時に受信できるようにします。

これを実現するには、Java メソッドを次のように変更します。

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") Employee emp) {

    // ..... business login
}

JSON 内この構造では、従業員データがマルチパート リクエストの一部になりました:

{
    "emp": {
        "Name": "John",
        "Age": 23,
        "Email": "[email protected]",
        "Adrs": {
            "DoorNo": "12-A",
            "Street": "Street-11",
            "City": "Bangalore",
            "Country": "Karnataka"
        }
    }
}

追加考慮事項

  • Jersey では、1 つのリクエスト内で複数の Content-Type を使用できません。
  • 一部のクライアントは、個々のボディ部分 (Postman や Postman など) の Content-Type の設定をサポートしていない場合があります。
  • これに対処するには、JSON を逆シリアル化する前に Content-Type を明示的に設定します。 data:
jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
Employee emp = jsonPart.getValueAs(Employee.class);
  • または、String パラメーターを使用し、Jackson ObjectMapper などのライブラリを使用して JSON を逆シリアル化することもできます。

次の手順に従います。 Jersey を使用すると、1 回の REST 呼び出しでファイルと付随する従業員データを正常にアップロードできます。

以上がJersey RESTful Webサービスでファイルと付随データを同時にアップロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。