2016-04-25 1 views
0

Je suis en train de mettre en œuvre un point de terminaison REST qui est capable de gérer les éléments suivants POST:Comment gérer octet-stream d'application/contenu dans 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 

Par conséquent, j'essaie de tirer parti org.glassfish.jersey. media.multipart.FormDataMultiPart qui ressemble à ceci:

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

à ce stade I'am struggeling avec la récupération du contenu réel de content-type: application/octet-stream. Des suggestions comment je peux gérer ce type de contenu?

Merci à l'avance

Répondre

0

Vous pouvez simplement utiliser les @FormDataParam annotations

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

Ou si vous voulez coller à l'aide FormDataMultiPart, vous pourriez faire quelque chose comme

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

Voir:

+0

C'était l'information dont j'avais besoin - merci beaucoup! BTW: Quelle est la meilleure pratique quand il s'agit de stocker des images dans une base de données (BASE64?) – Daniel