2016-04-25 64 views
0

我想實現一個REST端點,它能夠處理以下POST應用程序/八位字節流:如何處理包含在MULTIPART_FORM_DATA

-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowChunkNumber" 

1 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowChunkSize" 

1048576 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowCurrentChunkSize" 

1474992 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowTotalSize" 

1474992 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowIdentifier" 

1474992-SAM_0391JPG 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowFilename" 

SAM_0391.JPG 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowRelativePath" 

SAM_0391.JPG 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="flowTotalChunks" 

1 
-----------------------------6739772541706953700536795627 
Content-Disposition: form-data; name="file"; filename="SAM_0391.JPG" 
Content-Type: application/octet-stream 

因此,我儘量利用org.glassfish.jersey。 media.multipart.FormDataMultiPart它看起來像這樣:

@POST 
    @Path("/upload") 
    @Consumes(MediaType.MULTIPART_FORM_DATA) 
    public void uploadImage(FormDataMultiPart multiPartData). 

在這一點上我'與檢索的內容類型的實際內容struggeling:應用程序/八位字節流。任何建議如何我可以處理這種類型的內容?

在此先感謝

回答

0

你可以只使用@FormDataParam註釋

@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void uploadImage(@FormDataParam("file") InputStream file) 

或者,如果你要堅持使用FormDataMultiPart,你可以不喜歡

@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void uploadImage(FormDataMultiPart multiPartData) { 
    FormDataBodyPart filePart = multiPartData.getField("file"); 
    if (filePart != null) { 
     InputStream file = filePart.getEntityAs(InputStream.class); 
    } 
} 

參見:

+0

這是我需要的信息 - 非常感謝!順便說一句:將數據存儲在數據庫中的最佳做法是什麼(BASE64)? – Daniel