2012-12-09 31 views
1

我有一個html格式的動態數字<input type='file' />,文件&文本框<input type='text' />。 我怎樣才能在球衣後端所有的數據.. 我已經做到了像這樣的靜態數量的輸入:獲取球衣後端的所有輸入文件

@POST 
    @Path("post") 
    @Consumes("multipart/form-data") 
public Response postCategory(@FormDataParam("text1") String text1,FormDataMultiPart fm, 
      @FormDataParam("file1") InputStream file1, 
      @FormDataParam("text2") String text2, 
      @FormDataParam("file2") InputStream file2) { 

     System.out.println("CategoryService.postCategory()"); 
     System.out.println("text1:" + text1); 
     System.out.println("text2:" + text2); 

    } 

回答

1

也許這是你找什麼:

@POST 
    @Consumes("application/x-www-form-urlencoded") 
    public void post(MultivaluedMap<String, String> formParams) { 

    } 

一旦你有了那個Map那麼你幾乎可以做任何事情。您可以連接file + i並檢查地圖是否包含該密鑰,如果是,請取值高達i,在地圖中沒有此密鑰。

2

您可以使用FormDataMultiPart讓所有表單字段的值或者通過字段名或字段索引:

@POST 
    @Consumes("multipart/form-data") 
    public Response create(FormDataMultiPart multiPart) { 

     String text1 = multiPart.getField("text1").getEntityAs(String.class); 
     byte[] file1 = multiPart.getField("file1").getEntityAs(byte[].class); 

     String text2 = multiPart.getBodyParts().get(2).getEntityAs(String.class); 
     byte[] file2 = multiPart.getBodyParts().get(3).getEntityAs(byte[].class); 

     return Response.ok().build(); 
    }