J'ai un point de terminaison de téléchargement standard à Jersey:Comment obtenir le type MIME du fichier téléchargé à Jersey
@POST
@Secure
@Consumes("multipart/form-data")
public Response upload(@Context final HttpHeaders hh,
@FormDataParam("fileaaa") final FormDataContentDisposition disposition,
@FormDataParam("fileaaa") final InputStream input,
Comment puis-je obtenir le type MIME du fichier téléchargé? Si je fais disposition.getType
cela me donne le type MIME du formulaire; dans ce cas form-data
.
Je sais que l'information est là quelque part; le message HTTP doit être quelque chose comme:
-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="input_text"
mytext
-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="fileaaa";
filename="C:\Inetpub\wwwroot\Upload\pic.gif"
Content-Type: image/gif
(binary content)
-----------------------------7d01ecf406a6--
Ressusciter une question morte ici, mais comment avez-vous fait cela? Je rencontre le même problème (j'essayais d'utiliser URLConnection.guessContentTypeFromStream mais il semble échouer sur les fichiers texte), et quand j'ajoute un paramètre injecté de la forme [@FormDataParam ("my_file") BodyPart body], on obtient juste mettre à null. – Arkaaito
@Arkaaito Je n'ai pas touché à cela depuis un moment, mais avez-vous regardé les paramètres MultiPart pour votre point de terminaison? Vous n'avez pas besoin de le préfixer avec FormDataParam et vous pouvez obtenir les parties du corps à partir de cela. –
Commentaire de BigRedBettaFish: "Juste une note à la réponse acceptée, pour obtenir le BodyPart, vous pouvez utiliser: ' @FormDataParam ("mon_fichier") FormDataBodyPart body' Ensuite, vous pouvez utiliser 'body.getMediaType()' " –