2016-04-25 9 views
0

Ich versuche, einen REST-Endpunkt zu implementieren, die die folgende POST zu handhaben können ist:Wie application/octet-stream in MULTIPART_FORM_DATA enthalten behandeln

-----------------------------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 

Deshalb versuche ich org.glassfish.jersey zu nutzen. media.multipart.FormDataMultiPart, die wie folgt aussieht:

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

an diesem Punkt Ich bin struggeling mit den tatsächlichen Inhalt des Content-Type Abrufen: application/octet-stream. Irgendwelche Vorschläge, wie ich mit dieser Art von Inhalten umgehen kann?

Vielen Dank im Voraus

Antwort

0

könnten Sie verwenden nur die @FormDataParam Anmerkungen

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

Oder wenn Sie mit FormDataMultiPart bleiben möchten, können Sie so etwas wie

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

See tun:

+0

Das war die Information, die ich brauche - vielen Dank! BTW: Was ist die beste Vorgehensweise beim Speichern von Bildern in einer Datenbank (BASE64?) – Daniel