8

メソッド署名として使用して、うまく機能する複数のファイルをアップロードすることができた、ジャージーの安らかなWebサービスを作成しました。つまり、 他のフォーム フィールドを取得するには、relative for file またはを使用してメソッドで繰り返しチェックする必要があり、Web サービスが呼び出されるたびに必要なフィールドが存在するかどうかをチェックするメソッドが必要です。他のいくつかのフィールド。 @Context HttpServletRequest request
.isFormField();.getName();.getFieldName();.getString();

より簡単なアプローチは、@FormDataParamクライアントが渡す必要があるパラメーターで公開されていた Web サービスを使用することでしたが、問題は一度に複数のファイルをアップロードできないことです。

request.getParameter("field1");メディア タイプまたは enctype が の場合、他のフォーム フィールドを取得するために使用することもできませんmultipart/form-data

@FormDataParam両方を組み合わせようとすると、クラス のメソッドでリクエストを 解析しているときに@Context HttpServletRequest request例外がスローされます。
org.apache.tomcat.util.http.fileupload.FileUploadException: Stream closed
.parseRequest(request);ServletFileUpload

@FormDataParamいくつかの良いアプローチを親切に提案してくださいジャージのように簡単に必要なフォームフィールドを取得して複数のファイルをアップロードするにはどうすればよいですか.

複数のファイルをアップロードするためのアプローチ:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/multipleFiles")
public String restDemo(@Context HttpServletRequest request) 
{
  //...code goes here
}

私のフォーム:

ここに画像の説明を入力

出力:(リクエストの解析後)

field1 > abc
field2 > xyz
Chrysanthemum.jpg サイズ: 879394
Desert.jpg サイズ: 845941
Hydrangeas.jpg サイズ: 595284
Jellyfish.jpg サイズ: 775702

4

1 に答える 1