メソッド署名として使用して、うまく機能する複数のファイルをアップロードすることができた、ジャージーの安らかな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