14
Ho un endpoint di caricamento standard a Jersey:Come ottenere il tipo MIME di file caricato a Jersey
@POST
@Secure
@Consumes("multipart/form-data")
public Response upload(@Context final HttpHeaders hh,
@FormDataParam("fileaaa") final FormDataContentDisposition disposition,
@FormDataParam("fileaaa") final InputStream input,
Come posso ottenere il tipo MIME del file caricato?
Se faccio disposition.getType
questo mi ottiene il tipo MIME del modulo; in questo caso form-data
.
So che l'informazione è lì da qualche parte; il messaggio HTTP dovrebbe essere qualcosa di simile:
-----------------------------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--
Riportare qui una domanda morta, ma come hai fatto? Sto incontrando lo stesso problema (stavo cercando di usare URLConnection.guessContentTypeFromStream ma sembra fallire sui file di testo), e quando aggiungo un param iniettato del modulo [@FormDataParam ("my_file") BodyPart body], si ottiene impostato su null. – Arkaaito
@Arkaaito Non l'ho toccato da un po ', ma hai guardato i parametri MultiPart per il tuo endpoint? Non è necessario anteporre il prefisso a FormDataParam ed è possibile ottenere le parti del corpo da quello. –
Commento di BigRedBettaFish: "Solo una nota alla risposta accettata, per ottenere BodyPart, è possibile utilizzare: ' @FormDataParam ("my_file") Corpo FormDataBodyPart' Quindi è possibile utilizzare 'body.getMediaType()' " –